昨天因为和同事在奥森跑步回来很累就睡下了,今晚我们继续开始第二天..
今天探讨集群模式,理论性的资料网上很多,这里不做赘述.
集群模式开始:
在 zoo.cfg 定义的 dataDir 路径下,创建 myid 文件
本文路径:
/home/XXX/zookeeper/zookeeper-3.4.6/zkdata
[root@localhost ~]# sudo vi myid
写入1 即可,其他服务器依次类推
[root@localhost ~]# yum -y install iptables-services
[root@localhost ~]# sudo vi /etc/sysconfig/iptables
添加
-A INPUT -p tcp -m state --state NEW -m tcp --dport 2181 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 2888 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3888 -j ACCEPT
然后退出保存
关闭firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
[root@localhost ~]# cd /usr/local/zookeeper/zookeeper-3.4.6/bin
[root@localhost ~]#./zkServer.sh start
[root@localhost ~]#./zkServer.sh status
提示: it is probably not running
纠结了好几个小时,浪费了好多精力,试了网上好多办法,始终提示这个.
最后还是被我解决了,说一下过程:
首先:关闭防火墙的解决方案说的是最多的,建议关闭
然后.其他文章中谈到的 zookeeper.out 在哪个目录下呢
其实 zkEnv.sh 文件已指明 zookeeper.out 的路径,就在zookeeper 安装目录的 bin的路径下
当然可以自定义,具体怎么办,请查资料.
从 zookeeper.out 我们可以看到具体的原因,
2017-09-08 23:34:22,989 [myid:1] - WARN [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:QuorumCnxManager@382]
- Cannot open channel to 1 at election address /x.x.x.x:3888
2017-09-08 23:34:22,989 [myid:1] - WARN [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:QuorumCnxManager@382]
- Cannot open channel to 1 at election address /x.x.x.x:3888
最后.建议将每台服务器的当前节点指定为0.0.0.0
server.1=0.0.0.0:2888:3888
server.2=xxx.xxx.xxx.xxx:2888:3888
server.3=xxx.xxx.xxx.xxx:2888:3888
server.1=0.0.0.0:2888:3888
server.2=xxx.xxx.xxx.xxx:2888:3888
server.3=xxx.xxx.xxx.xxx:2888:3888
如此一来,设置成 IP, 那/ etc/hosts 的设置岂不是无效?还是会有其他方案,留给网友们讨论了.
感谢 stackover 网友的答案