启动主节点脚本(start-nifi-master.sh):
#!/bin/bash
docker run -dt -p 8080:8080 --name nifi-master --hostname master -e HOSTNAME='master' -e USE_EMMBEDED_ZK='true' -e ZK_CONNECTION_STR='master:2181' -e IS_CLUSTER='true' -e MAX_MEM='1024' \
-e NIFI_VERSION='1.1.0' -e ZK_HOSTNAME='master' younge.club/nifi:v1.1.0
启动从节点脚本(start-nifi-slave.sh):
#!/bin/bash
docker run -dt -p 8081:8080 --name nifi-slave --hostname slave --link nifi-master:nifi-master -e HOSTNAME='slave' -e USE_EMMBEDED_ZK='false' -e ZK_CONNECTION_STR='master:2181' -e IS_CLUSTER='true' -e MAX_MEM='1024' -e NIFI_VERSION='1.1.0' -e ZK_HOSTNAME='master' younge.club/nifi:v1.1.0
进入主节点界面(attach-nifi-master.sh):
#!/bin/bash
docker exec -it nifi-master /bin/bash
进入从节点界面(attach-nifi-slave.sh):
#!/bin/bash
docker exec -it nifi-slave /bin/bash
停止并移除容器(stop-rm-containers.sh):
#!/bin/bash
docker ps | awk '{print $1}' | grep -v CONTAINER | xargs -i docker stop {}
docker ps -a | awk '{print $1}' | grep -v CONTAINER | xargs -i docker rm {}
给上述脚本授权,chmod u+x *.sh
启动集群:
1.启动主节点,./start-nifi-master.sh,正常启动无错误返回,仅显示一个16进制的字符串。
2../attach-nifi-master.sh进入主节点
3.ifconfig 确定主节点IP为172.17.0.2,并进入/root/data_collect/nifi-1.1.0中启动节点,bin/nifi.sh start
4.启动从节点,./start-nifi-slave.sh。
5../attach-nifi-slave.sh进入从节点
6.ifconfig确定从节点地址IP为172.17.0.3,并进入/root/data_collect/nifi-1.1.0中启动节点,bin/nifi.sh start
检查集群:
1../attach-nifi-master.sh进入主节点。
2.使用netstat -apnt | grep 8080,检查配置的三个端口是否开启,前面以8080为例,其余参考即可。
3.进入/root/data_collect/nifi-1.1.0目录,使用tail -fn300 logs/nifi-app.log检查日志。
4.从节点参考主节点即可。
docker构架在物理机上不需要做端口映射,否则需要使用NAT做端口映射,将8080端口映射到本机。
进入NIFI WEB UI界面,浏览器输入http://localhost:8080/nifi,检查是否成功。
可能问题:
1.从节点IP地址不为172.17.0.3,请手动修改《Nifi Docker集群-两个节点(1)》中的init.sh脚本中的从节点IP地址。