Zookeeper集群status状态一直失败解决方案
最近在搭建Zookeeper集群,遇到这个问题头疼了非常久,看了很多网上的教程,还是没能解决相应的问题。最后的最后,终于被我发现了,哎,其实都是自己还不够细心,分享一下,希望有共同问题的朋友可以不用像我一样浪费太多的时间。
简单来说在我每次运行zookeeperd后都会显示启动成功:
JMX enabled by default
Using config: /data/programfiles/zookeeper-3.4.5/bin/…/conf/zoo.cfg
Starting zookeeper … STARTED
但用命令行输入./zkServer.sh status查看结果时,却一直显示如下信息:
JMX enabled by default
Using config: /data/programfiles/zookeeper-3.4.5/bin/…/conf/zoo.cfg
Error contacting service. It is probably not running.
我看到有篇文章说到,主要的原因有以下几点:
可能有以下几个原因:
第一,zoo.cfg文件配置出错:dataLogDir指定的目录未被创建;
第二,myid文件中的整数格式不对,或者与zoo.cfg中的server整数不对应
第三,防火墙未关闭;
第四,2181端口被占用;
第五,zoo.cfg文件中主机名出错;
第六,hosts文件中,本机的主机名有两个对应,只需保留主机名和ip地址的映射(原文链接https://blog.csdn.net/u010657789/article/details/51393517)
由于我一开始真的不知道自己的问题出在哪里,于是一个个尝试。。。
解决方案一
我多次查看zoo.cfg文件,刚开始的时候没有dataLogDir的路径内容,于是后面补上去了。以及反复确认两条路经的正确(后面myid文件保证在dataDir路径下面),还有最后面三个server.1的内容,应该是和网络上一样了。(黄色部分)
然后尝试重新运行Zookeeper————结果依旧失败哎
(尝试dataDir=/…/data/ 加个斜杆
解决方案二
myid文件中的整数格式不对————反复确认,并没有什么问题,只要你是按照教程走的,这个问题基本不存在。
解决方案三
防火墙未关闭,我按照网上说的防火墙的介绍,发现我这个根本不存在,于是这个方案被我pass
解决方案四
采用命令:netstat -nlp |grep 2181 查看当前zookeeper集群端口背运用的情况
我首先是用jps 查看了一下我启动的zookeeper运动的线程号是多少,发现当前2181端口也就是我的这个zookeeper再使用而已。但保险起见,我还是kill了一次,然后重新打开,事实上也没有太大的帮助。但也有可能会有其他线程占用的情况发生,还是可以试试查看一下。
(我这里没有格外占用的情况)
解决方案五
zoo.cfg文件中主机名出错————该文件查看多次,没有什么问题。
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
解决方案六
hosts文件中,本机的主机名有两个对应,只需保留主机名和ip地址的映射——打开 vi /etc/hosts
查询一下主机名和ip地址,这个在前面的基础配置应该就已经是确定无误的了。大概率不会是这个差错。
其他
除了上述六个问题之后,我看到的还有说是因为版本不对,我换了三个版本,3.4.10、3.4.5、3.3.6 配置上都一样,最后并没有什么变化,都没能够解决status的问题。
我的问题解决
最后我查询了bin下面的zookeeper.out文件,看看到底是什么问题。一开始出现过:启动地址已使用的情况,全部kill重启之后问题变化了。
最后是出现“没有找到主机路由”这样的消息,然后特地查询了这个是怎么回事,发现还是很多说是因为没有把防火墙关闭的原因,但不同的是,这次我看到了不同版本的虚拟机用的命令是不一样的!!!!
我一下子感觉到了什么,一个早上+半个晚上的艰难配置,居然就这?
先列一下各个版本的虚拟机下Linux是怎么关闭防火墙的:
Ubuntu
查看防火墙状态
ufw status
关闭防火墙
ufw disable
Centos6
查看防火墙状态
service iptables status
关闭防火墙
chkconfig iptables off
Centos7
查看防火墙状态
firewall-cmd --state
关闭防火墙
systemctl stop firewalld.service
永久关闭
systemctl disable firewalld.service
果然,我用了centos7版本的防火墙关闭方法,顺利的得到了结果!
版本问题真的害人啊,都是些小细节,大问题也都没有,话费自己这么长时间也有点无奈,记录一下希望没有人跟我犯一样的错误了!