zookeepr 启动后查看状态,发现没有启动,现象:
sudo ./zkServer.sh status
ZooKeeper JMX enabled by default Using config: /usr/local/bin/zookeeper/bin/../conf/zoo.cfg Error contacting service. It is probably not running.
“连接不到服务,可能没有启动”,异常日志会写在 zookeeper/bin 目录下的 zookeeper.out 文件中,查看
cat zookeeper.out # 内容 nohup: failed to run command ‘java’: No such file or directory
意思是: zookeeper 没找到 java,但是本地 java 配置一切正常。
java -version java version "1.8.0_141" Java(TM) SE Runtime Environment (build 1.8.0_141-b15) Java HotSpot(TM) 64-Bit Server VM (build 25.141-b15, mixed mode)
echo $JAVA_HOME /usr/local/bin/jdk1.8.0_141
解决办法:
在 zookeeper 启动时,会使用到 zkEnv.sh 。它里面负责寻找 jdk。
if [ "$JAVA_HOME" != "" ]; then JAVA="$JAVA_HOME/bin/java" else JAVA=java fi
可以在 这里直接指定 JAVA_HOME
JAVA_HOME=/usr/local/bin/jdk1.8.0_141 if [ "$JAVA_HOME" != "" ]; then JAVA="$JAVA_HOME/bin/java" else JAVA=java fi
再启动 zookeeper ,这个问题就解决了。



