看了一下网上的文档大多数是基于比较早的版本的 ,把我的经验拿出来分享一下,希望大家少踩坑 ,另外nifi1.15.3之后的版本都必须加上TLS ,如果不需要权限管理的话可以使用1.15.2版本,
搭建文档是这个链接
基于Nifi 1.15.2 集群搭建_Mumunu-的博客-CSDN博客_nifi集群搭建
nifi是什么就不再赘述了
首先下载安装包
解压到合适的位置
然后在合适的地方部署一个zk 必须是3.6以上的新版本。
zk部署很简单。。就不赘述了
进入nifi-toolkit-1.16.3 准备生成TLS的key和配置文件
bin/tls-toolkit.sh standalone -C 'CN=test, OU=NIFI' -n 'nifi-node1,nifi-node2,nifi-node3,nifiregistry-node' --keyPassword hhh123 --keyStorePassword hhh123 --trustStorePassword hhh123 -o 'targat'
解释一下选项的意思
standalone 在一个命令中生成证书颁发机构、密钥库、信任库和nifi.properties文件。同理有Client/Server 这个选项则是使用一个证书颁发机构服务器,该服务器接受来自客户端的证书签名请求,对其进行签名,然后将生成的证书发回。客户端和服务器都通过共享密钥验证对方的身份,用不着
-C 生成适合在指定DN的浏览器中使用的客户端证书 里面的都是一些标记配置 ,按自己需要填写,比如CN=prod
-n 生成的证书节点名称 可以逗号分隔 生成一堆
-n 'nifi-node1,nifi-node2,nifi-node3,nifiregistry-node'
这个名称很重要,是你用来登录的时候使用的域名。登录这个节点就需要用这个名字。否则报错
比如配置的nifi-node1,就需要能在本地解析到对应的ip 用hosts或者域名解析dns都行,如果用ip。那就写上ip地址 比如 172.31.255.125,172.31.255.126 这样
下面则是一些证书的密码 按需填写即可
最后-o 是输出的目录 也可以不要 但是会输出在当前目录下 很乱
进入生成的targat目录 可以看到生成的文件
把节点目录发送到各个节点
外面的文件可用可不用,都是一些https的key 用了会更舒服一点,懒得用了
直接进目录
里面有3个文件
keystore.jks nifi.properties truststore.jks
分发到各个节点,覆盖原来的,配置文件在conf下,需要修改的信息不多
nifi.zookeeper.connect.string=10.0.2.2:2181,10.0.2.3:2181,10.0.2.4:2181
nifi.cluster.is.node=true
有kerberos的再加一个
nifi.kerberos.krb5.file=/etc/krb5.conf
修改 state-management.xml
<property name="Connect String">10.0.2.2:2181,10.0.2.3:2181,10.0.2.4:2181</property> # 添加zk的地址
修改 bootstrap.conf
> java.arg.2=-Xms10240m
> java.arg.3=-Xmx10240m
默认512 太小,按需修改
nifi.cluster.load.balance.host=
这个配置在生成的配置文件中为空,不知道有什么用处 我也没填
然后更新集群内部key
bin/nifi.sh set-sensitive-properties-key xxxxxxxxx
这里自定义就行了 长度需要超过12位
集群版每个节点都需要设置,key的内容需要一样的
如果是首次搭建这会就可以启动了
如果是搭建完了添加的配置
conf下的flow.xml.gz,这个文件夹里是一些nifi的配置 如果key有冲突要删掉 但是需要重新配置你的数据流
集群版每个节点都需要删除
设置好之后启动
启动后先不忙登陆,设置一个初始账密
bin/nifi.sh set-single-user-credentials <username> <password>
密码长度需要大于12位 并且不能用$符合结尾
然后再重启一下 登录https://域名:9443
这个域名就是上面配置的节点名称 比如ip就是https://172.31.255.213:9443
用主机名就是https://nifi-node1:9443
一定要带https
会提示你证书不对 确定登录 这里可以自己配证书 我懒得搞了
然后就能见到登录页面 按账密登录即可 提示你账密无效的话重新设置一下 然后再重启一下 基本就搞定了
基础的账密就完成了
nifi其实还有完善的权限体系 下次再更新