Apache NiFi - 简介

Apache NiFi 是一个功能强大、易于使用且可靠的系统,用于在不同系统之间处理和分发数据。 它基于 NSA 开发的 Niagara Files 技术,并在 8 年后捐赠给 Apache Software 基金会。 它根据 2004 年 1 月的 Apache 许可证版本 2.0 分发。Apache NiFi 的最新版本是 1.7.1。

Apache NiFi 是一个实时数据摄取平台,可以在不同源和目标系统之间传输和管理数据传输。 它支持多种数据格式,如日志、地理位置数据、社交源等。它还支持许多协议,如 SFTP、HDFS 和 KAFKA 等。这种对多种数据源和协议的支持使得该平台在许多 IT 组织。

Apache NiFi 一般功能

Apache NiFi的总体特点如下 −

  • Apache NiFi 提供基于 Web 的用户界面,提供设计、控制、反馈和监控之间的无缝体验。

  • 它是高度可配置的。 这有助于用户在运行时获得有保障的交付、低延迟、高吞吐量、动态优先级、背压和修改流程。

  • 它还提供数据来源模块来跟踪和监控从流程开始到结束的数据。

  • 开发人员可以根据自己的需求创建自己的自定义Processor(处理器)和报告任务。

  • NiFi 还提供对 SSL、HTTPS、SSH 和其他加密等安全协议的支持。

  • 它还支持用户和角色管理,还可以配置 LDAP 进行授权。

Apache NiFi - 关键概念

Apache NiFi的关键概念如下 −

  • 进程组 − 它是一组NiFi流,帮助用户以分层方式管理和保留流。

  • − 它被创建为连接不同的Processor(处理器),以便在需要时从一个或多个数据源传输和修改数据到另一个目标数据源。

  • Processor(处理器) − Processor(处理器)是一个java模块,负责从源系统获取数据或将其存储在目标系统中。其他Processor(处理器)还用于添加属性或更改流文件中的内容。

  • 流文件 − 这是NiFi的基本用法,它代表NiFi中从源系统中选取的数据的单个对象。 NiFi Processor(处理器)在从源Processor(处理器)移动到目标时对流文件进行更改。 流中的不同Processor(处理器)对流文件执行不同的事件,如 CREATE、CLONE、RECEIVE 等。

  • 事件 − 事件表示遍历 NiFi Flow 时流文件的变化。 这些事件在数据来源中进行跟踪。

  • 数据来源 − 它是一个存储库。它还有一个 UI,使用户能够检查有关流程文件的信息,并帮助排除流程文件处理过程中出现的任何问题。

Apache NiFi 优势

  • Apache NiFi 支持使用 SFTP 从远程计算机获取数据并保证数据沿袭。

  • Apache NiFi支持集群,因此可以在多个节点上以相同的流程处理不同的数据,从而提高数据处理的性能。

  • 它还提供了用户级别、进程组级别和其他模块的安全策略。

  • 其 UI 还可以在 HTTPS 上运行,这使得用户与 NiFi 的交互更加安全。

  • NiFi 支持大约 188 个Processor(处理器),用户还可以创建自定义插件来支持各种数据系统。

Apache NiFi 缺点

  • 当用户在其中进行任何更改时,节点与 NiFi 集群断开连接时,flow.xml 将变为无效。除非管理员手动从连接的节点复制 flow.xml,否则节点无法连接回集群。

  • Apache NiFi 在主节点切换时存在状态持久性问题,这有时会导致Processor(处理器)无法从源系统获取数据。