最近在安装zookeeper的时候遇到了一个问题:调用./zkServer.sh start之后,使用命令telnet localhost 2181,显示访问被拒绝。然后使用netstat查看监听2181的端口,无法查到。通过ps -aux指令可以查到zookeeper进程,不过查看监听端口,2181没有被监听。 ./zkServer.sh status,显示:zookeeper的服务好像没有启动。而我在调用之后,确实显示:
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
在使用./zkServer.sh print-cmd,没有发现明显的错误。之后,使用./zkServer.sh start-foreground,显示有一个
ERROR [main:ZooKeeperServerMain@64] 错误。
之后,应该是调用的时候,在前面添加了sudo,然后报错
./zkServer.sh: 第 170 行: exec: java: 未找到
后来,我在zkServer.sh中添加了java的路径:
JAVA_HOME="/usr/java/jdk1.8.0_171"
然后,telnet localhost 2181就可以得到正确的回复。
另外附上我的conf配置:
tickTime=2000 dataDir=/var/lib/zookeeper/data dataLogDir=/var/lib/zookeeper/logs clientPort=2181 quorumListenOnAllIPs=true
如果有人遇到类似的问题,可以参考一下。