也能够在集群内运行
Cluster Coordinator: 集群协调器,用来进行管理节点添加和删除的操作逻辑
Primary Node: 主节点,用来运行一些不适合在集群中运行的组件
Zookeeper Client: zk节点
从NiFi 1.0版本开始,NIFI集群采用了Zero-Master Clustering模式。NiFi群集中的每个节点对数据执行
相同的任务,但每个节点都在不同的数据集上运行。Apache ZooKeeper选择单个节点作为集群协调
器,ZooKeeper自动处理故障转移。所有集群节点都会向集群协调器发送心跳报告和状态信息。集群协
调器负责断开和连接节点。此外,每个集群都有一个主节点,主节点也是由ZooKeeper选举产生。我们
可以通过任何节点的用户界面(UI)与NiFi群集进行交互,并且我们所做的任何更改都将复制到集群中
的所有节点上。
6、NIFI的性能
NIFI的设计目的是充分利用其运行的底层主机系统的能力。这种资源的最大化在CPU和磁盘方面尤其明
显。
1)、IO
不同系统不同配置可预期的吞吐量或延迟会有很大差异,具体取决于系统的配置方式。由于大多数NiFi
子系统都有可插拔的实现方法,所以性能取决于实现。但是,对于一些具体和广泛适用的地方,使用现
成的默认实现。这些实现都是持久的,有保证的让数据流传递,并且是使用本地磁盘来实现。因此,假
设在典型服务器中的普通磁盘或RAID卷上的每秒读/写速率大约为50 MB,对于大型数据流,NIFI应该能
够有效地达到每秒100 MB或更多的吞吐量。这是因为预期添加到NiFi的每个物理分区和content
repository都会出现线性增长。
2)、CPU
Flow Controller充当引擎的角色,指示特定处理器何时可以被分配线程去执行。编译处理器并在执行任
务后立即释放线程。可以为Flow Controller提供一个配置值,该值指示它维护的各种线程池的可用线
程。理想的线程数取决于主机系统内核数量,系统中是否正在运行其他服务,以及流程中要处理的流的
性质。对于典型的IO大流量,合理的做法是让多线程可用。
3)、RAM
NiFi在JVM中运行,因此受限于JVM提供的内存。JVM垃圾回收(GC)成为限制实际堆总大小以及优化应
用程序运行的一个非常重要的因素。NIFI作业在定期读取相同内容时可能会占用大量I/O。可以配置足够
大的内存和磁盘以优化性能。
评论0