启动zookeeper时,jps显示有进程,但是status查看状态时就Error contacting service. It is probably not running

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了启动zookeeper时,jps显示有进程,但是status查看状态时就Error contacting service. It is probably not running相关的知识,希望对你有一定的参考价值。

转自:http://www.cnblogs.com/xiaohua92/p/5460515.html#undefined

安装zookeeper时候,可以查看进程启动,但是状态显示报错:Error contacting service. It is probably not running

安装zookeeper-3.3.2的时候,启动正常没报错,但zkServer.sh status查看状态的时候却出现错误,如下:

JMX enabled by default
Using config: /hadoop/zookeeper/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.

jps查看进程,却发现进程已启动

7313  QuorumPeerMain

 

在网上查阅资料一共有三种解决方法:

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)
如果已存在则去掉
注:因为我用的zookeeper是3.4.5版本,所以在我的zkServer.sh脚本文件里根本没有这一行,所以没有生效

2,调用sh zkServer.sh status 遇到这个问题。百度,google了后发现有人是修改sh脚本里的一个nc的参数来解决,可在3.4.5的sh文件里并没有找到nc的调用。配置文档里指定的log目录没有创建导致出错,手动增加目录后重启,问题解决。
注:我想不是日志的问题所以这个方法根本就没有试

3,创建数据目录,也就是在你zoo.cfg配置文件里dataDir指定的那个目录下创建myid文件,并且指定id,改id为你zoo.cfg文件中server.1=localhost:2888:3888中的    1.只要在myid头部写入1即可.
注:在我第二次安装的时候,没有将myid文件创建在dataDir指定的那个目录下,也报了该错误。之后在dataDir指定的那个目录下创建myid文件就没有报错。

4 因为防火墙没有关闭。关闭防火墙:

  #查看防火墙状态

   service iptables status 

  #关闭防火墙
   service iptables stop
  #查看防火墙开机启动状态
   chkconfig iptables --list
  #关闭防火墙开机启动
   chkconfig iptables off

 注意:我的确在开始时候没有关闭防火墙,但是当我关闭防火墙之后也没有解决问题。

5 没有建立主机和ip之间的映射关系。

  建立主机和ip之间映射关系的命令为 vim /etc/hosts   在文件的末端加入各个主机和ip地址之间的映射关系就可以了。

  注意:只有在建立了映射关系之后,才可以将在同一个网段下的机器利用主机名进行文件传递。问题解决!

备注:方式5中在每台主机上配上集群中的ip与host的对应关系!!!

以上是关于启动zookeeper时,jps显示有进程,但是status查看状态时就Error contacting service. It is probably not running的主要内容,如果未能解决你的问题,请参考以下文章

Zookeeper jps没有QuarumPeermain但是运行启动命令时,总是报已经启动

zookeeper的安装以及启动jps进程

在配置zookeeper时可能出现的进程的错误以及解决方法

jps命令

Jps介绍以及解决jps无法查看某个已经启动的java进程问题盗用

zookeeper中的QuorumPeerMain解析