1.Apache NiFi是什么?
NiFi是apache下的一个开源组件,可以自动化系统之间的数据流,是一个全能数据整合工具。我们在此使用它来表示系统之间的自动化和不同系统之间数据的流转。公司拥有多个系统,其中一些系统创建了数据,另一部分系统消耗了数据,那么问题就出现了不同系统之间的数据转化为题。nifi就是一个致力于数据对接的集成框架。
2、NiFi核心概念
Nifi 的设计理念接近于基于流的编程 Flow Based Programmin这是相关做理疗的链接 [fbp]. 下面是nifi的一些核心概念,还有他和FBP的对于关系:
3、apache NiFi架构
NiFi在主机操作系统上的JVM内执行。JVM上的NiFi的主要组件如下:
- 网络服务器
- Web服务器的目的是托管NiFi的基于HTTP的命令和控制API。
- 流控制器
- 流控制器是操作的大脑。它提供用于扩展程序运行的线程,并管理扩展程序接收资源以执行的时间表。
- 扩展
- 有各种类型的NiFi扩展在其他文档中描述。这里的关键是扩展在JVM中运行和执行。
- FlowFile存储库
- FlowFile存储库是NiFi跟踪目前在流程中活动的给定FlowFile的知识状态。存储库的实现是可插拔的。默认方法是位于指定磁盘分区上的持久写入前端日志。
- 内容存储库
- Content Repository是给定FlowFile的实际内容字节。存储库的实现是可插拔的。默认方法是一个相当简单的机制,它将数据块存储在文件系统中。可以指定多个文件系统存储位置,以便获得不同的物理分区,以减少任何单个卷上的争用。
- 源头存储库
- Provenance Repository是存储所有来源的事件数据的地方。存储库构造是可插入的,默认实现是使用一个或多个物理磁盘卷。在每个位置内,事件数据被索引和可搜索。
NiFi还能够在集群内运行。
从NiFi 1.0版本开始,采用零主分类范例。NiFi集群中的每个节点对数据执行相同的任务,但是每个节点都在不同的数据集上进行操作。Apache ZooKeeper选择单个节点作为群集协调器,故障转移由ZooKeeper自动处理。所有群集节点向群集协调器报告心跳和状态信息。集群协调器负责断开连接节点。此外,每个群集都有一个主节点,也由ZooKeeper选择。作为DataFlow管理器,您可以通过任何节点的用户界面(UI)与NiFi集群进行交互。您所做的任何更改都会复制到群集中的所有节点,从而允许多个入口点。