在红帽虚拟机下搭建zooKeeper集群时候,各个主机的zk都能启动,查看状态时候出错。
非常纠结,找不到日志信息配置的地方,ls命令执行了一下,在执行命令的当前目录中存在一个zookeeper.out文件,这里面记录了启动的日志信息,可以从里面找出问题。我查看了一下,错误是
[myid=2]:QuorumCnxManager@368] - Cannot open channel to 1 at election address hadoop1/192.168.245.225:3888
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:354)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:327)
at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.process(FastLeaderElection.java:393)
at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.run(FastLeaderElection.java:365)
at java.lang.Thread.run(Thread.java:662)
网上查了一下,这个异常的问题可能是因为防火墙阻止端口号通信的问题。然后逐个查看了虚拟机的防火墙,发现确实有两台虚拟机没有关闭防火墙。关闭防火墙后测试通过。
关闭防火墙
(1) 执行命令service iptables status查看防火墙是否允许
执行命令service iptables stop关闭防火墙
执行命令service iptables status验证是否关闭了
(2)
执行命令chkconfig --list|grep iptables 查看是否有on
执行命令chkconfig iptables off关闭防火墙自动运行
执行命令chkconfig --list|grep iptables 查看是否有on
另外还要注意
确保集群的主从节点服务器保持奇数个,否则会出现问题。还有就是尽量保持服务器集群的系统时间一致。
来源:CSDN
作者:月上金桥
链接:https://blog.csdn.net/yueshangjinqiao1/article/details/10125091