然后我们开始来搭建nifi集群,可以看到之前我们上传上来的安装包
然后我们因为当前目录有了,我先去解压到其他目录
这里解压到/export/soft下面去
然后进去soft去看看,可以看到已经有了
然后我们说我们要搭建3个nifi的集群,那么这个时候,需要复制3份,但是
我们为了方便这里先不cp -r nifi-1.9.2-18001了 先不复制了,可以看到我们先重命名,然后又
复制了,注意这里的复制先不要执行,我们可以配置完了以后再复制,这样方便一点
首先我们去看看,进入cd nifi-1.9.2-18001/conf下面,然后ls一下,看看里面有个zookeeper.properties
需要配置这个zookeeper,内嵌的zookeeper信息
打开以后,然后首先配置这个clientPort
clientPort是zookeeper的端口号,然后
这里要注意,我不是用了3台服务器,而是用了3个服务,相当于开启了3个进程来进行的nifi集群的搭建,当然你可以
搭建3台服务器,这样更好.
这里在这个目录下有配置好的配置文件可以拿过去用
配置了clientPort以后,然后再来配置 server.1= ...这里,这里添加集群的信息,这里添加3台
这里的12888是用来集群内机器通信的,然后13888是用来进行选举的.
一、zookeeper有三个端口(可以修改)
1、2181
2、3888
3、2888
二、3个端口的作用
1、2181:对cline端提供服务
2、3888:选举leader使用
3、2888:集群内机器通讯使用(Leader监听此端口)
注意这里我们用的nifi1.9版本的所以这里,配置这个地方,后面只有2个端口号,如果用的1.9.2的版本,这个地方就配置3个端口号了
这个保存退出zookeeper的配置就完了.
然后我们再去创建一个根目录下有个state目录,然后下面有个zookeeper目录
然后创建以后,然后我们进入这个目录,然后我们在这个目录下创建一个myid文件,然后输入内容1
做为这个服务器的一个唯一的标识
然后我们再来进入conf,这个配置目录
然后去修改一下nifi.properties文件
然后找到这个nifi.state.management.embedded.zookeeper.start =true 默认是false
指的是要不要nifi开启内嵌集群模式,这个默认是fasle没打开的
这里改成true就可以了
然后在修改几个端口,主机地址
可以看到这里的nifi.web.http.host=192.168.52.150
这里的端口也需要改一下,这里默认的8080,改成18001
然后在修改nifi.cluster.is.node=true,把集群修改一下节点为true
然后对应的端口也修改一下为28001
可以看到节点协议端口,这里改成28001...这里
然后再修改一下nifi.cluster.flow.election.max.wait.time=1 mins
表示flow在做为正确的flow流之前的等待时间.
我们这里设置至少1个节点就可以运行
可以看到这里nifi.cluster.flow.election.max.candidates=1 设置为1,至少一台机器可用,集群就可以运行
然后再看这里的nifi.cluster.load.balance.port=16342 这里的端口号也需要改
然后指定nifi.zookeeper.connect.string=192.168.52.150:12181,192.168.52.150:12182,192.168.52.150:12183
指定zookeeper的3台机器
然后保存退出就可以了按下esc然后 :wq
然后再来修改conf/state-management.xml文件
然后打开这个文件,看看内容,这里主要配置
可以看到有个本地local的配置,有个
cluster-provider集群的配置
然后这里我们主要用这个cluster集群配置
这里我们主要配置ConnectString这个属性,可以看到其实就是加入了
zookeeper的配置内容对吧.
然后保存退出就可以了
然后我们再看看,去配置一下18002这个nifi节点
一样进入以后,先配置zookeeper.properties
这里修改clientPort=12182端口
然后再去编辑18003的配置
修改对应的端口号
然后再去同样编辑18002的myid文件,写入2
然后保存退出就可以了
然后再编辑vim 18003的文件myid
写入3然后保存退出
然后再编辑对应的nifi.properties文件
同样编辑http.port为18002,第二个nifi
然后同样再配置下面的内容
协议端口
然后这里再配置负载均衡的端口
配置balance.port
然后再配置nifi 18003这个nifi的配置
修改web.http.port端口
修改协议端口
然后修改负载均衡端口
然后再去配置18003,第三份的nifi的state-management.xml文件
打开看一下,然后一样配置这里,ConnectString
配置以后就可以去启动了
先来启动18001这个nifi
然后再来启动18002,这个nifi
然后再来启动18003这个nifi
这个时候可以看到cpu是100%了,然后
然后我们可以来查一下日志
tail -f ./nifi-1.9.2-18001/logs/nifi-app.log
可以看到日志里面显示stopped,报错了
然后我们看看报错原因,可以看到说state provider is not validated,说 ConnectString 是invalid
我们看看是怎么回事
让我们检测./conf/state-management.xml对吧
然后我们去看看这个配置文件
可以看到,有问题对吧,因为这里,前面有空格对吧.
我们把前面的空格都删除掉
然后我们再保存,并且我们把这两个文件都复制到,18002,18003这两个nifi上去
然后我们再看,再去启动一下看看18001,18002,18003
启动的时候我们再去看看日志
tail -f ....
可以看到日志显示已经看到端口号,ip地址了,显示finished processing ...
启动好了以后,然后我们去访问一下可以看到可以了已经
然后我们从这里看看,这个配置,cluster集群
我们看一下jps,后台,已经都启动了对吧
但是集群只有一个,但是我们启动了3个对吧,怎么回事
我们来访问一下18002,18003
可以看到都可以访问的
然后我们再来看看为什么是只有一个呢,显示,集群我们配置了3个nifi对吧
我们来看看,18001的这个配置文件myid
可以看到都没有问题,分别是1,2,3
然后我们再检查zookeeper.properties
可以看到这里有问题,server.1 都用成这个了对吧,我们应该是server.1 .2 .3这样才对对吧
我们修改一下
都修改一下,然后
我们再去关闭一下nifi1,nifi2,nifi3...stop一下
然后stop了以后
我们再去写一个start.sh,来启动nifi
可以看到里面写上,具体的启动三个niif的命令
然后我们保存退出,然后这里
再修改一下这个文件的属性,权限.. chmod +wrx start.sh
然后执行就可以了 ./start.sh
执行有我们看看
等一会cpu降下来
然后我们再去访问nifi,可以看到上面显示,已经有3台机器了
然后再去看,可以看到,配置那个地方,也已经显示有3台机器了
然后状态可以看到18001,这个是主节点对吧.