Apache NiFi - 简介



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

Apache NiFi 是一个实时数据摄取平台,可以传输和管理不同来源和目标系统之间的数据传输。它支持各种各样的数据格式,例如日志、地理位置数据、社交信息流等。它还支持许多协议,例如 SFTP、HDFS 和 Kafka 等。对各种数据源和协议的支持使其成为许多 IT 组织中流行的平台。

Apache NiFi - 一般特性

Apache NiFi 的一般特性如下:

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

  • 它高度可配置。这有助于用户实现可靠投递、低延迟、高吞吐量、动态优先级、背压以及在运行时修改数据流。

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

  • 开发人员可以根据需要创建自己的自定义处理器和报表任务。

  • NiFi 还支持安全的协议,例如 SSL、HTTPS、SSH 和其他加密。

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

Apache NiFi - 关键概念

Apache NiFi 的关键概念如下:

  • 处理组 - 它是一组 NiFi 数据流,帮助用户以分层方式管理和维护数据流。

  • 数据流 - 通过连接不同的处理器来创建,用于传输和修改数据(如果需要)从一个或多个数据源到另一个目标数据源。

  • 处理器 - 处理器是一个 Java 模块,负责从源系统获取数据或将其存储到目标系统。其他处理器还用于在 FlowFile 中添加属性或更改内容。

  • FlowFile - 这是 NiFi 的基本用法,它表示从 NiFi 中源系统提取的数据的单个对象。NiFi 处理器在 FlowFile 从源处理器移动到目标处理器的过程中对其进行更改。不同的事件,例如 CREATE、CLONE、RECEIVE 等,由数据流中的不同处理器在 FlowFile 上执行。

  • 事件 - 事件表示 FlowFile 在遍历 NiFi 数据流期间的变化。这些事件在数据溯源中进行跟踪。

  • 数据溯源 - 它是一个存储库。它还有一个 UI,使用户能够检查有关 FlowFile 的信息,并在处理 FlowFile 期间出现任何问题时帮助进行故障排除。

Apache NiFi 优势

  • Apache NiFi 使用 SFTP 从远程机器获取数据,并保证数据血缘。

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

  • 它还在用户级别、处理组级别和其他模块上提供安全策略。

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

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

Apache NiFi 缺点

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

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

广告