6F5BC5E6-67C1-46FF-B06A-01AE33A48ED2.png
Nifi支持水平擴展,每個節(jié)點都執(zhí)行相同的任務(wù),但每個節(jié)點處理的數(shù)據(jù)是不同的。Zookeeper會從集群中選擇一個coordinator(管理者),并由zookeeper負責failover。
當有新的節(jié)點要加入集群時,他需要與coordinator建立連接,如果coordinator允許該節(jié)點加入集群,則會向該節(jié)點提供最新的流程信息。如果節(jié)點上的流程信息版本與coordinator不一致,則不允許他加入集群。
集群中所有的節(jié)點向coordinator發(fā)送心跳(默認5秒一次),如果指定時間內(nèi)(默認40秒)沒有收到節(jié)點的心跳,該節(jié)點將被退出集群(coordinator主動與該節(jié)點斷開連接)。如果40秒后再次收到該節(jié)點的心跳,則coordinator會重新邀請該節(jié)點加入集群,并對其進行驗證和同步流程。
另外zookeeper還會選擇一個Primary node來運行一些不適合在多個節(jié)點同時運行的processor(如GetSftp,多個sftp客戶端同時運行時,將產(chǎn)生資源競爭),當Primary node節(jié)點由于某些原因與集群斷開連接時,zookeeper會重新票選出一個新的Primary node。
用戶可以進入任何一個node的ui界面進行編輯,任何流程的修改,將在集群內(nèi)部進行同步。
下載、解壓
官網(wǎng)下載
修改配置文件(conf/nifi.properties)
#節(jié)點UI監(jiān)聽端口
nifi.web.http.port=8080
#節(jié)點是否采用集群模式,true集群模式,默認為false
nifi.cluster.is.node=true
#節(jié)點的IP地址
nifi.cluster.node.address=172.16.114.207
#節(jié)點用于集群通信的端口
nifi.cluster.node.protocol.port=9999
#連接zookeeper的地址
nifi.zookeeper.connect.string=docker-1:2181
啟動集群
分別在每個節(jié)點執(zhí)行bin/nifi.sh start