1.nifi 简介
nifi 是一个数据同步的框架,像是flume和datax可以完成的操作,nifi也可以完成。而且nifi有一个官方提供的web ui,我们所有的操作都可以在web ui上通过方块的形式拖拽来完成,只需要填写相关的参数,就可以实现相对应的功能,方便了相关人员的配置。相对于flume和datax的使用也更加友好。
数据同步框架针对不同的数据源会提供不同的处理器,只需要配置对应的处理器就可以实现对应的功能。nifi提供的处理器有200多个,而且还支持用户自己进行扩展。
Apache NiFi 是由美国国家安全局(NSA)开发的,并于2014年被捐赠给 Apache 软件基金会。所以安全等级非常高。其他大数据的框架在安全性方面则没有这些优势。
2.nifi 集群构建
nifi 集群依赖外部zookeeper,需要先安装一个zookeeper集群,这里省略zk内容
2.1.安装
nifi 下载和安装
wget https://archive.apache.org/dist/nifi/1.21.0/nifi-1.21.0-bin.zip unzip nifi-1.21.0-bin.zip -d /usr/local/ cd /usr/local/ ln -s nifi-1.21.0/ nifi
2.2.生成证书
nifi 集群部署要求使用nifi-toolkit生成对应的验证证书,并且集群中所有节点的证书都是一样的才能构建成一个集群。
安装nifi-toolkit
wget https://archive.apache.org/dist/nifi/1.21.0/nifi-toolkit-1.21.0-bin.zip unzip nifi-toolkit-1.21.0-bin.zip -d /usr/local/
执行脚本命令生成证书
[root@hadoop-test01 nifi-toolkit-1.21.0]# ./bin/tls-toolkit.sh standalone -C 'CN=username, OU=NIFI' -n 'hadoop-test01,hadoop-test02,hadoop-test03' -K 123456789012 -S 123456789012 -P 123456789012 -o 'outlog'
参数解析:
standalone:表示单点生成证书
-C 生成适合在指定 DN 的浏览器中使用的客户端证书 里面的都是一些标记配置
-n 设置节点地址
如下参数都是设置密码的意思,需要自己手动设置,否则会随机生成,随机生成的密码在使用就麻烦了
–keyPassword(-K) 设置需要使用的密码
–keyStorePassword(-S)设置要使用的密钥库密码
–trustStorePassword (-P)设置要使用的密钥库密码
证书输出内容如下:
[root@hadoop-test01 nifi-toolkit-1.21.0]# ll outlog/ 总用量 16 -rw------- 1 root root 3515 4月 25 20:45 CN=username_OU=NIFI.p12 -rw------- 1 root root 43 4月 25 20:45 CN=username_OU=NIFI.password drwx------ 2 root root 71 4月 25 20:45 hadoop-test01 drwx------ 2 root root 71 4月 25 20:45 hadoop-test02 drwx------ 2 root root 71 4月 25 20:45 hadoop-test03 -rw------- 1 root root 1233 4月 25 20:45 nifi-cert.pem -rw------- 1 root root 1675 4月 25 20:45 nifi-key.key [root@hadoop-test01 nifi-toolkit-1.21.0]# ll outlog/hadoop-test01/ 总用量 28 -rw------- 1 root root 3109 4月 25 20:45 keystore.jks -rw------- 1 root root 17237 4月 25 20:45 nifi.properties -rw------- 1 root root 935 4月 25 20:45 truststore.jks
分发证书:
[root@hadoop-test01 outlog]# cp CN* hadoop-test01/ [root@hadoop-test01 outlog]# cp CN* hadoop-test02/ [root@hadoop-test01 outlog]# cp CN* hadoop-test03/ [root@hadoop-test01 outlog]# cp nifi-* hadoop-test01/ [root@hadoop-test01 outlog]# cp nifi-* hadoop-test02/ [root@hadoop-test01 outlog]# cp nifi-* hadoop-test03/ [root@hadoop-test01 outlog]# scp -r hadoop-test01/* hadoop-test01:/usr/local/nifi/conf/ [root@hadoop-test01 outlog]# scp -r hadoop-test02/* hadoop-test02:/usr/local/nifi/conf/ [root@hadoop-test01 outlog]# scp -r hadoop-test03/* hadoop-test03:/usr/local/nifi/conf/
2.3.修改nifi配置
设置3台zk连接
[root@hadoop-test01 nifi]# vim conf/state-management.xml 61行 <property name="Connect String">hadoop-test01:2181,hadoop-test02:2181,hadoop-test03:2181</property>
修改3台节点的配置文件
[root@hadoop-test01 nifi]# vim conf/nifi.properties 152行 nifi.web.https.host=hadoop-test01 258行 nifi.cluster.is.node=true nifi.cluster.node.address=hadoop-test01 278行 nifi.zookeeper.connect.string=hadoop-test01:2181,hadoop-test02:2181,hadoop-test03:2181
设置更新初始密码
[root@hadoop-test01 nifi]# ./bin/nifi.sh set-sensitive-properties-key 123456789012 [root@hadoop-test02 nifi]# ./bin/nifi.sh set-sensitive-properties-key 123456789012 [root@hadoop-test03 nifi]# ./bin/nifi.sh set-sensitive-properties-key 123456789012 [root@hadoop-test01 nifi]# ./bin/nifi.sh set-single-user-credentials admin 123456789012 [root@hadoop-test02 nifi]# ./bin/nifi.sh set-single-user-credentials admin 123456789012 [root@hadoop-test03 nifi]# ./bin/nifi.sh set-single-user-credentials admin 123456789012
启动nifi
[root@hadoop-test01 nifi]# ./bin/nifi.sh start [root@hadoop-test02 nifi]# ./bin/nifi.sh start [root@hadoop-test03 nifi]# ./bin/nifi.sh start
登录webUI:
集群模式的NIFI默认登录端口号为9443,协议是https,第一次登陆初始化数据需要一段时间
至此,nifi集群就安装部署完成了
转载请注明:西门飞冰的博客 » nifi 集群部署1.21 版本