怀疑人生的一次体验
辛辛苦苦安装完三台虚拟机,安装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.玄学