当前位置:网站首页>NiFi集群搭建及必要的相关配置
NiFi集群搭建及必要的相关配置
2022-07-15 15:23:00 【青冬】
NiFi集群搭建及必要的相关配置
前言
无论什么 请先搜官网,尝试官网的搭建方法doc地址: nifi doc
源码github地址: github地址
截止2020年12月14日21:45:20为止,nifi最新版本为1.12
准备环境为外部zk3.5以上版本(虽然官网只是提了一句使用keyboard需要zk3.5以上,但是经过测试后发现,如果外部zk小于3.5,则各个节点会报无法创建和寻找节点的错误)
需要环境
java 1.8以上
zk 3.5以上
可能你需要hdfs/hive/core/等等相关的配置文件,可以预先提取出来。。
nifi下载地址: nifi官网down
使用 nifi-1.12.1-bin.tar.gz 进行演示。
开始单机测试
- 安装时请使用对应用户,不用啥都root
- 寻找一个安装目录
比如/data1/app/nifi
mkdir -p /data1/app/nifi
cd /data1/app/nifi
- 解压安装包
tar -zxvf nifi-1.12.1-bin.tar.gz
- 查看自带说明
cd /data1/app/nifi/nifi-1.12.1; cat README
如果你刚学请自己翻译一下这篇文章,上面有些依赖/授权/启动使用/相关文档。这算是告使用者书,相当重要。
- 单节点启动
bash /data1/app/nifi/nifi-1.12.1/bin/nifi.sh start
- 查看网址及日志
cd /data1/app/nifi/nifi-1.12.1/logs ;
# 三个日志文件 nifi-app.log nifi-user.log nifi-bootstrap.log
# 其中最重要的为nifi-app.log 上面记录了详细的加载项 及各个processor和queued信息 logger
tail -f nifi-app.log
访问本地url查看nifi界面。

集群搭建
集群搭建的话需要更改两个配置文件(使用外部zookeeper,3.5版本以上)
- nifi.properties
vi /data1/app/nifi/nifi-1.12.1/conf/nifi.properties;
更改配置
####################
# State Management #
####################
nifi.state.management.configuration.file=./conf/state-management.xml
# The ID of the local state provider
nifi.state.management.provider.local=local-provider # 使用自带provider
# The ID of the cluster-wide state provider. This will be ignored if NiFi is not clustered but must be populated if running in a cluster.
nifi.state.management.provider.cluster=zk-provider # 使用zk进行cluster控制(还可以使用redis等)
# Specifies whether or not this instance of NiFi should run an embedded ZooKeeper server
nifi.state.management.embedded.zookeeper.start=false # 使用内部zk(nifi自带zk,但我们这次使用外部的)
# Properties file that provides the ZooKeeper properties to use if <nifi.state.management.embedded.zookeeper.start> is set to true
nifi.state.management.embedded.zookeeper.properties=./conf/zookeeper.properties #(如果使用内部zk 改属性无效化)
# web properties #
nifi.web.war.directory=./lib
nifi.web.http.host=10.10.10.AA # 非常重要,nifi的界面化控制ip地址,填对应节点的IP
nifi.web.http.port=10111 # 控制ip地址的端口
nifi.web.http.network.interface.default=
nifi.web.https.host= #如果需要https服务,可以填这里
nifi.web.https.port=
nifi.web.https.network.interface.default=
# cluster node properties (only configure for cluster nodes) #
nifi.cluster.is.node=true # 指定这个nifi节点是否是集群中的一员, 如false则单节点运行
nifi.cluster.node.address=10.10.10.AA # 与其他节点进行通讯的ip地址和端口,这里填对应节点的IP
nifi.cluster.node.protocol.port=10112 # 通讯的ip的端口
nifi.cluster.node.protocol.threads=10 # 使用多少个线程进行通讯,推荐节点数*2
nifi.cluster.node.protocol.max.threads=50 #使用多少个线程进行通讯,推荐节点数*10
nifi.cluster.node.event.history.size=25
nifi.cluster.node.connection.timeout=5 sec
nifi.cluster.node.read.timeout=5 sec
nifi.cluster.node.max.concurrent.requests=100
nifi.cluster.firewall.file=
nifi.cluster.flow.election.max.wait.time=20 sec # 选举等待时间
nifi.cluster.flow.election.max.candidates=1 # nifi中有选举员和老大,要选举的时候由选举员来统计票数,这个数值设定了需要多少个人来求出一个老大,配置1让nifi快速选举
# cluster load balancing properties #
nifi.cluster.load.balance.host=10.10.10.AA # 均衡的沟通ip端口,这里填对应节点的IP
nifi.cluster.load.balance.port=10113 # 端口
nifi.cluster.load.balance.connections.per.node=5 # 这个参数在数据量/文件个数多的时候配置大一点,
nifi.cluster.load.balance.max.thread.count=20
nifi.cluster.load.balance.comms.timeout=30 sec
# zookeeper properties, used for cluster management #
nifi.zookeeper.connect.string=10.10.10.zk1:2181,10.10.10.zk2:2181,10.10.10.zk3:2181,10.10.10.zk4:2181,10.10.10.zk5:2181 # 配置zk的连接字符串, nifi底层使用的java,java连接zk应该没问题吧
nifi.zookeeper.connect.timeout=3 secs
nifi.zookeeper.session.timeout=3 secs
nifi.zookeeper.root.node=/nifi # zk上的注册的节点 同一个zk集群的同一个节点设定为同一个nifi集群
上述重要的就是三个ip:port 的配置以及nifi.zookeeper.connect.string的配置。 确认无误后进行第二个配置文件的配置。
- state-management.xml
还记得我们配置的zk-provider么,来自state-management.xml,所以要在里面更改zookeeper.connect.string
vi /data1/app/nifi/nifi-1.12.1/conf/state-management.xml;
更改配置为(根节点和zk集群ip同上一个配置文件中的一致)
<cluster-provider>
<id>zk-provider</id>
<class>org.apache.nifi.controller.state.providers.zookeeper.ZooKeeperStateProvider</class>
<property name="Connect String">10.10.10.zk1:2181,10.10.10.zk2:2181,10.10.10.zk3:2181,10.10.10.zk4:2181,10.10.10.zk5:2181</property>
<property name="Root Node">/nifi</property>
<property name="Session Timeout">10 seconds</property>
<property name="Access Control">Open</property>
</cluster-provider>
如果此配置文件不更改,在nifi页面上仍会看见集群连接等相关内容,但对于某些只能运行在master,需要登记在zk节点上的processor就无法运行。
- 扩展到其他节点BB CC DD等。
将配置文件中的三个ip进行更改,然后到每个NiFi节点中,配置完毕后 每个节点都需要单独启动
bash /data1/app/nifi/nifi-1.12.1/bin/nifi.sh start
- 查看集群及测试
无异常的显示结果

错误
NiFi一直在转圈圈 或者 显示正在初始化 长达几分钟

查看日志中的nifi-app.log
如果发现有线程连接不上zk节点的,请登录zk节点上进行排查。
zk直接无法连接,请查看nifi.zookeeper.connect.string是否配置正确,是否添加了端口号,网络是否连通。
如果zk节点已经创建/nifi节点,但 component中没有任何processor,则可能是zk-provider配置错误。其他错误请留言,查看后会及时回复。
必要设置
- 设置每个节点的max thread数量,目前为止,nifi占据的cpu不算多,但是内存消耗大一点,(我配置的很大,防止full GC)


- bootstrap.conf
NiFi 是JVM构成的,所以需要配置堆内存等相关的属性,可以在bootstrap.conf中进行配置。
# JVM memory settings
java.arg.2=-Xms6g
java.arg.3=-Xmx18g
在此文件中,还涉及一些告警配置,如nifi挂了的操作,邮件重试次数等,挖坑后补。
边栏推荐
- 信息系统项目管理师核心考点(八)软件集成技术
- EN 1158 building hardware door coordination device - CE certification
- 牛客2021暑期训练1-H-Hash Function
- [flutter -- actual combat] Introduction to flutter
- What are the hardware of the cashier system?
- MATLAB初次学习
- Cool dog music interface is amazingly open
- Kekeguo information management] information management paper writing requirements - unqualified papers
- The concept and characteristics of network security grid are simple and popular
- H5云图后台读写CAD文件-在线CAD,网页CAD,网页浏览编辑CAD
猜你喜欢

1、 MySQL Foundation

H5云图后台读写CAD文件-在线CAD,网页CAD,网页浏览编辑CAD

Redis01 : NoSQL和Redis简介

一图看懂:国企数字化转型4个方向3个战略

四、Explain 性能分析

E-commerce platform background management system -- > operation method description

CRMEB Pro v1.4,让用户体验更出彩!

Redis03: five common data types of redis

E-commerce platform background management system --- > system detailed design (user management module)

Talk about several ways spark implements topn
随机推荐
电商平台后台管理系统--->操作方法说明
Dynamic programming | longest common subsequence
E-commerce platform background management system --- > system detailed design (user management module)
牛客2021暑期训练3-E-Math
Redis05:Redis的事务
Redis03: five common data types of redis
1、 MySQL Foundation
Puge - basic configuration usage of winscp and xshell of Honghu team on the code
动态规划 | 最长公共子序列
一/二、高级篇- Mysql逻辑架构、性能与JOIN
Niuke 2021 summer training 1-h-hash function
超强ping工具
3、 Index optimization
牛客2021暑期训练5-B-Boxes
一图看懂:国企数字化转型4个方向3个战略
uni-app做微信登录(待写完)
象棋一本通
H5云图后台读写CAD文件-在线CAD,网页CAD,网页浏览编辑CAD
Clear understanding of big end and small end
E-commerce platform background management system -- > operation method description