赞
踩
Apache NiFi 是一个易于使用,功能强大且可靠的系统,用于处理和分发数据。可以自动化管理系统间的数据流。它支持高度可配置的指示图的数据路由、转换和系统中介逻辑,支持从多种数据源动态拉取数据。NiFi原来是NSA的一个项目,目前已经代码开源,是Apache基金会的顶级项目之一。
NiFi是基于Java的,使用Maven支持包的构建管理。 NiFi基于Web方式工作,后台在服务器上进行调度。用户可以为数据处理定义为一个流程,然后进行处理,后台具有数据处理引擎、任务调度等组件。
FlowFile:表示通过系统移动的每个对象,包含数据流的基本属性
FlowFile Processor(处理器):负责实际对数据流执行工作
Connection(连接线):负责不同处理器之间的连接,是数据的有界缓冲区
Flow Controller(流量控制器):管理进程使用的线程及其分配
Process Group(过程组):进程组是一组特定的进程及其连接,允许组合其他组件创建新组件
NiFi在主机操作系统上的JVM内执行。
1)Web Server
Web服务器的目的是托管NiFi的基于HTTP的命令和控制API。
2)Flow Controller
流控制器是操作的大脑。它提供用于扩展程序运行的线程,并管理扩展程序接收资源以执行的时间表。
3)Extension N
有各种类型的NiFi扩展在其他文档中描述。这里的关键是扩展在JVM中运行和执行。
4) FlowFile Repository
FlowFile存储库是NiFi跟踪目前在流程中活动的给定FlowFile的知识状态。存储库
实现是可插拔的。默认方法是位于指定磁盘分区上的持久写入前端日志。
5)Content Repository
内容存储库是给定FlowFile的实际内容字节。存储库的实现是可插拔的。默认方法是一个相当简单的机制,它将数据块存储在文件系统中。可以指定多个文件系统存储位置,以便获得不同的物理分区,以减少任何单个卷上的争用。
6)Provenance Repository
源头存储库是存储所有来源的事件数据的地方。存储库构造是可插入的,默认实现是使用一个或多个物理磁盘卷。在每个位置内,事件数据被索引和可搜索。
作为功能强大的数据处理和分发组件,sNiFi自然原生支持集群部署方式(推荐部署方式)。NiFi集群部署模式如下图:
集群模式下,NiFi集群中的每个节点对数据执行相同的任务,但是每个节点都在不同的数据集上进行操作。和大部分大数据组件一样,NiFi集群使用Apache ZooKeeper提供协调服务。 Apache ZooKeeper选择一个NiFi节点作为集群协调器,故障转移由ZooKeeper自动处理。 所有集群节点向集群协调器报告心跳和状态信息。集群协调器负责节点的断开和连接。 此外,ZooKeeper会为每个集群选举一个节点作为集群主节点。 作为DataFlow管理器,您可以通过任何节点的用户界面(UI)与NiFi集群进行交互。您所做的任何更改都会同步到集群中的所有节点,从而允许多个入口点。
1)处理器( processor )
nifi内部提供了各个处理器模块, 根据不同的需求, 选择不同的处理器进行拼装, 从而组成一个完整的流处理组.
2)数据流传入点(input-port)
虽说是数据流输入点,但是并不是整体数据流的起点。它是作为组与组之间的数据流连接的传入点与输出点。
3)数据流输出点(output-port)
同理上面的输入点。它是作为组与组之间的数据流连接的传入点与输出点。
4)组(process-group)
组相当于系统中的文件夹,作用就是使数据流的各个部分看起来更工整,思路更清晰,不至于从头到尾一条线阅读起来十分不方便。
5)远程组(remote process-group)
6)聚合(funnel)
用于将来自多个Connections的数据合并到一个Connection中。
7)模版(template)
可以将若干组件组合在一起以形成更大的组,从该组创建数据流模版。这些模板也可以导出为XML并导入到另一个NiFi实例中,从而可以共享这些组。
8)便签(label)
可放置在画布空白处,写上备注信息。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。