zookeeper status出现error的解决方案

怀疑人生的一次体验

辛辛苦苦安装完三台虚拟机,安装zookeeper,修改了配置文件,结果start zookeeper后一查status,他喵的给我来个error。。。

[root@hadoop bin]#  ./zkServer.sh status
JMX enabled by default
Using config: /usr/local/zk/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.

没事,谁让咱脾气好,慢慢查呗。
查看zookeeper.out文件,说是 拒绝连接 (Connection refused)

2017-09-23 10:41:36,464 [myid:1] - WARN  [WorkerSender[myid=1]:QuorumCnxManager@588] - Cannot open channel to 2 at election address /192.168.1.105:3888
java.net.ConnectException: 拒绝连接 (Connection refused)
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:589)
        at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:562)
        at org.apache.zookeeper.server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:538)
        at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.process(FastLeaderElection.java:452)
        at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.run(FastLeaderElection.java:433)
        at java.lang.Thread.run(Thread.java:748)

百度了一下,都说是配置文件zoo.cfg

结果目录对着,文件对着,ip对着,myid也对着,防火墙压根没开。。。。

不信邪了我,看了无数遍文件,都要看吐了,还是没找出哪里有错,查到怀疑人生。无奈,滚去睡觉。
第二天起来,继续查。发现server2和server3的zookeeper.out都打不开,提示什么
java错误?百度了一下,原来jdk环境配置路径写错了!!!我可能是第一个因为jdk而导致zookeeper error 的人吧。所以百度不到这个细节。。。蠢哭自己了(๐॔˃̶ᗜ˂̶๐॓)。

总结一下可能出现error的情况吧

1. zoo.cfg配置文件中指定目录却没有创建! 创建相应目录即可。
2. zoo.cfg中dataDir指定路径为Myid文件的路径。
Myid内容与:server.?=localhost:2888:3888 中你所设置?一致!
3.使用service iptables stop 关闭防火墙
  使用service iptables status确认

4. 1,打开zkServer.sh 找到status)
    STAT=`echo stat | nc localhost $(grep clientPort "$ZOOCFG" | sed -e 's/.*=//') 2> /dev/null| grep Mode`
在nc与localhost之间加上 -q 1 (是数字1而不是字母l)
如果已存在则去掉
#我的zkServer.sh没有这段内容,可能跟版本有关

5.2181端口被占用!        
zkServer.sh stop        #先停止zookeep
netstat -an | grep 2181 #查看端口是否占用,如果占用
clientPort = 2888       #随便找个没占用的端口号!

6.虚拟网络编辑器没有选择了vmnet0
   我选了好几次才选择上,估计选择后要点应用

7.jdk是否配置正确
   我就是。。。。。不说了,桑心!

8.玄学

你可能感兴趣的:(云计算,zookeeper)