转载来源一:
公司要用zookeeper,所以昨天在本机装了一个伪集群,安装步骤就不在这说了,很简单,网上也有很多的图文教程.但是启动完了之后执行 zkServer.sh status 的时候 报了Error contacting service. It is probably not running错误,在网上找了集中解决办法:
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脚本文件里根本没有这一行,所以没有生效
2,调用sh zkServer.sh status 遇到这个问题。百度,google了后发现有人是修改sh脚本里的一个nc的参数来解决,可在3.4.6的sh文件里并没有找到nc的调用。配置文档里指定的log目录没有创建导致出错,手动增加目录后重启,问题解决。
注:我想不是日志的问题所以这个方法根本就没有试
3,创建数据目录,也就是在你zoo.cfg配置文件里dataDir指定的那个目录下创建myid文件,并且指定id,改id为你zoo.cfg文件中server.1=localhost:2887:3887中的1.只要在myid头部写入1即可.
注:这是我的解决办法
原文来自:http://www.myexception.cn/ruby-rails/1727353.html
转载来源二:
JMX enabled by default
Using config: /data/zookeeper-3.3.2/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
有人说是 nc问题 修改过 还不行。。求解答
此时可能是nc 工具的问题 --确认电脑里安装了nc(netcat)工具
去zkServer.sh 里找到 下面这句话
STAT=`echo stat | nc localhost $(grep clientPort "$ZOOCFG" | sed -e 's/.*=//') 2> /dev/null| grep Mode`
修改成
STAT=`echo stat | nc -q l localhost $(grep clientPort "$ZOOCFG" | sed -e 's/.*=//') 2> /dev/null| grep Mode`
问题补充:
jps看一下有没有对应的zookeeper进程。
接着看你zookeeper的监听端口有没有启动。
不知道你用的是什么系统:
linux的话用:netstat —an | grep 2181
windows的话用:netstat —an | findstr 2181
2181是zookeeper的默认端口,如果你改变了端口那就换成你改的那个端口就可以了。
集群之间的监听端口是2888,你要检查集群有没有问题的话直接把2181换成2888就可以看到多个节点之间有没有互相连通了。
如果发现没有进程启动或者没有找到监听端口的话说明你zookeeper启动失败了,这个时候到log底下找日志看到底是什么原因启动失败的。
zkServer.sh status功能太单一,很多情况下反馈的信息不好使,我们通常不用这个。
log底下找日志看到底是什么原因启动失败的。??
关键是怎么没有找见log目录 或者 文件啊 呵呵 第一次用ZooKeeper 多多指教
日志你要配置:
配置文件中配置:
dataLogDir 来指定你日志的输出位置,输出规则可以在log4j里面配置。
更多高级管理功能你可以参考:
http://zookeeper.apache.org/doc/trunk/zookeeperAdmin.html#sc_maintenance
里面说的很详细。
你还可以参与zookeeper的讨论邮件列表。里面也会有很多高级内幕。
原文来自:http://www.iteye.com/problems/80303