没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Apache NiFi系列文章
1、nifi-1.9.2介绍、单机部署及简单验证
2、NIFI应用示例-GetFile和PutFile应用
3、NIFI处理器介绍、FlowFlie常见属性、模板介绍和运行情况信息查看
4、集群部署及验证、监控及节点管理
5、NiFi FileFlow示例和NIFI模板示例
6、NIFI应用场景-离线同步Mysql数据到HDFS中
7、NIFI综合应用场景-将mysql查询出的json数据转换成txt后存储至HDFS中
8、NIFI综合应用场景-NiFi监控MySQL binlog进行实时同步到hive
9、NIFI综合应用场景-通过NIFI配置kafka的数据同步
@TOC
本分主要介绍NIFI的两种集群部署方式以及节点的日常管理和简单介绍state管理。
本文前提依赖是zookeeper环境具备。
本分分为三个部分,即集群部署、节点管理和state管理。
一、NIFI集群部署
DFM(DataFlow Manager)可能会发现在单个服务器上使用一个NiFi实例不足以处理他们拥有的数据
量。集群NiFi服务器,可以增加处理能力同时,支持单接口控制,通过该接口可以更改整个集群数据流
并监控数据流。集群允许DFM只进行一次更改,然后将更改的内容复制到集群的所有节点。通过单一接
口,DFM还可以监视所有节点的健康状况和状态。
1、零主集群
NiFi采用Zero-Master Clustering。集群中的每个节点都对数据执行相同的任务,但每个节点都在不同的
数据集上运行。其中一个节点自动被选择(通过Apache ZooKeeper)作为集群协调器。然后,集群中的所
有节点都会向此节点发送心跳/状态信息,并且此节点负责断开在一段时间内未报告任何心跳状态的节
点。此外,当新节点选择加入集群时,新节点必须首先连接到当前选定的集群协调器,以获取最新的
流。如果集群协调器确定允许该节点加入(基于其配置的防火墙文件),则将当前流提供给该节点,并且该
节点能够加入集群,假设节点的流副本与集群协调器提供的副本匹配。如果节点的流配置版本与集群协
调器的版本不同,则该节点将不会加入集群。
NiFi集群协调器(NiFi Cluster Coordinator):NiFi集群协调器是NiFi集群中的节点,负责管理集群中
允许执行任务的节点,并为新加入的节点提供最新的数据流量。当DataFlow Manager管理集群中
的数据流时,可以通过集群中任何节点的用户界面执行此操作。然后,所做的任何更改都将复制到
集群中的所有节点。
节点(Nodes):每个集群由一个或多个节点组成。节点执行实际的数据处理。
主节点(Primary Node):每个集群都有一个主节点。在此节点上,可以运行"隔离处理器"。
ZooKeeper用于自动选择主节点。如果该节点由于任何原因断开与集群的连接,将自动选择新的主
节点。用户可以通过查看用户界面的"集群管理"页面来确定当前选择哪个节点作为主节点。
孤立的Processor:在NiFi集群中,相同的数据流会在所有节点上运行。但是,可能存在DFM不希
望每个处理器在每个节点上运行的情况。最常见的情况是使用的处理器存在与外部服务进行通信得
的情况。例如,GetSFTP处理器从远程目录中提取。如果GetSFTP处理器在集群中的每个节点上运
行并同时尝试从同一个远程目录中提取,则可能存在重复读取。因此,DFM可以将主节点上的
GetSFTP配置为独立运行,这意味着它仅在该节点上运行。通过适当的数据流配置,它可以提取数
据并在集群中的其余节点之间对其进行负载平衡。注意,虽然存在此功能,但仅使用独立的NiFi实
例来提取数据并将其输出内容分发给集群也很常见。它仅取决于可用资源以及管理员配置集群的方
式。
心跳:节点通过"心跳"将其健康状况和状态传达给当前选定的集群协调器,这使协调器知道它们仍
然处于连接状态并正常工作。默认情况下,节点每5秒发出一次心跳,如果集群协调器在40秒内没
有从节点收到心跳,则由于"缺乏心跳"而断开节点。5秒设置可在nifi.properties文件中配置。集群
协调器断开节点的原因是协调器需要确保集群中的每个节点都处于同步状态,并且如果没有定期收
听到节点,协调器无法确定它是否仍与其余节点同步。如果在40秒后节点发送新的心跳,协调器将
自动把请求节点重新加入集群。一旦接收到心跳,由于心跳不足导致的断开连接和重新连接信息都
会报告给用户界面中的DFM
2、环境基础
1、系统:CentOS 6.10
2、Java环境:JDK8
3、部署
NiFi的集群部署有两种方式,即使用其自带的zookeeper或使用独立的zookeeper。本次部署采用的是独
立的zookeeper,也是实际生产中常见的部署方式;自带的zookeeper部署仅供参考,一般用于开发或
测试环境。
1)、使用NiFi集成的zookeeper
NiFi依赖于ZooKeeper以实现集群配置。但是,在有些环境中,部署了NiFi,而没有维护现有的
ZooKeeper集群。为了避免强迫管理员维护单独的ZooKeeper实例的负担,NiFi提供了嵌入式
ZooKeeper服务器的选项。
通过设置 nifi.properties 中的nifi.state.management.embedded.zookeeper.start属性为true来运行嵌
入式的ZooKeeper服务器。
通常建议在3或5个节点上运行ZooKeeper。关于zookeeper的作用或部署要求详见本人zookeeper专栏
相关内容。
如果nifi.state.management.embedded.zookeeper.start属性设置为true,则 nifi.properties 中的
nifi.state.management.embedded.zookeeper.properties属性也需要设置。它用来指定要使用的
ZooKeeper属性文件。这个属性文件至少需要配置ZooKeeper的服务器列表。另注意,由于ZooKeeper
将侦听这些端口,因此可能需要将防火墙配置为打开这些端口。默认值为2181,但可以通过
zookeeper.properties文件中的clientPort属性进行配置。
使用嵌入式ZooKeeper时,/ conf / zookeeper.properties文件具有名为dataDir的属性。默认情况下,此
值为./state/zookeeper。如果多个NiFi节点正在运行嵌入式ZooKeeper,则必须告知服务器它是哪一
个。通过创建名为myid的文件 并将其放在ZooKeeper的数据目录中来实现。此文件的内容应该是不同服
务器的唯一索引值。
对于某一个ZooKeeper服务器,进行如下操作
对于将运行ZooKeeper的下一个NiFi节点,进行如下操作
采用三个节点的集群,且在一台机器上搭建,不同节点的端口会不同;如果搭建在三台机器上,IP不
同,那么端口可以相同。
1、上传并解压
上传nifi-1.9.2-bin.tar.gz文件到服务器的/usr/local/bigdata目录下,并进行解压:
在同个目录下创建三个副本,即将上文中解压的文件复制三份。
cd $NIFI_HOME
mkdir state
mkdir state/zookeeper
echo 1 > state/zookeeper/myid
cd $NIFI_HOME
mkdir state
mkdir state/zookeeper
echo 2 > state/zookeeper/myid
tar -zxvf nifi-1.9.2-bin.tar.gz -C /usr/local/bigdata/nifi-1.9.2-18001
剩余11页未读,继续阅读
资源评论
一瓢一瓢的饮alanchanchn
- 粉丝: 2916
- 资源: 69
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功