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 的用户界面,提供设计、控制、反馈和监控之间的无缝体验。

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

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

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

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

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

Apache NiFi - 关键概念

Apache NiFi 的关键概念如下:

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

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

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

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

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

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

Apache NiFi 的优点

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

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

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

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

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

Apache NiFi 的缺点

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

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