最近在搭建mq集群时候需要用到,zookeeper,可是启动的时候显示成功了,查看状态的时候却报错了:

zookeeper集群查看状态时报错Error contacting service. It is

碰到这个问题也是研究好好半天才解决,这里就总结出一个快速解决办法!

首先,必须看日志:

zookeeper集群查看状态时报错Error contacting service. It is

报错信息一般是当前目录下这个文件中,打开查看是什么原因,基本上我碰见的两种:一种是端口占用,一种是找不到路由:
zookeeper集群查看状态时报错Error contacting service. It is

还有一种就是端口占用了,netstat -znpl |grep 2181 查看一下并关闭这个进程,默认端口是2181,zoo.cfg可配置

!!!!这里提示一下,zoo_sample.cfg必须改成名字z.cfg,否则也无法启动,还有查看状态必须所有配置了集群的节点都启动才行,因为要互相通信选出老大

我的是因为上面图这个,防火墙阻止了通信了,只有关闭防火墙就可以了,于是很坑的一点就来了,我用的是centos7,然后关了发现还是不好使,后来才想起来,我为了使用习惯,以前不知道啥时候把防火墙换成iptables了,坑爹,然后都关闭就可以,查看成功:
zookeeper集群查看状态时报错Error contacting service. It is

注意:关闭之后,最好是kill调端口,全部重新启动一下,然后看一下输出日志,报错没有,没有就可以了

这里贴一下firewalld 和IPtables的关闭方法:

firewalld(一般是centos7以及以上):

临时关闭: systemctl stop firewalld.service

查看状态:systemctl status firewalld.service

zookeeper集群查看状态时报错Error contacting service. It is

开机禁用(需要重启生效):systemctl disable firewalld.service

IPtables(centos6之前的):

暂时关闭防火墙:(立即生效,开机重启,会重新打开)
service iptables stop
永久关闭防火墙(关机重启才会生效)
chkconfig iptables off

如果是centos7里面,那就要换一种写法了:

systemctl stop iptables.service 其他一样的