安装zookeeper时候,可以查看进程启动,但是状态显示报错:Error contacting service. It is probably not running
安装zookeeper-3.4.9的时候,启动正常没报错,
但 ./zkServer.sh status查看状态的时候却出现错误,如下:
JMX enabled by default
Using config: /opt/zookeeper-3.4.9/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
在网上查阅资料一共有三种解决方法:
在此之前先检查是否正确安装了jdk,Zookeeper需要在JVM虚拟机上运行,所以一定要保证有JDK支持。
方法一:打开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)
如果已存在则去掉
注:版本高于3.4.5可忽略此方法,因为我用的zookeeper是3.4.9版本,所以在我的zkServer.sh脚本文件里根本没有这一行,所以没有生效
方法二:因为防火墙没有关闭。关闭防火墙:
#查看防火墙状态
service iptables status
#关闭防火墙
service iptables stop
#查看防火墙开机启动状态
chkconfig iptables –list
#关闭防火墙开机启动
chkconfig iptables off
方法三:创建数据目录,就是在你的zoo.cfg配置文件里dataDir指定的目录(
)下创建myid文件(注意是创建文件而不是目录,我当初就是踩的这个坑),并且指定id,改id为你zoo.cfg文件中server.1=localhost:2888:3888中的1(只要在myid头部写入1即可.)
注:我就是没有在zoo.conf中创建myid文件,创建之后在头部输入 数字1 ,退出保存重启zookeeper,问题解决了