详细错误信息:zookeeper.out nohup: failed to run command `java(/XX/XX)’: No such file or directory
问题描述
当启动zookeeper时,bin/zkServer.sh start能够正常运行,显示started。但随之使用bin/zkServer.sh status检查zookeeper状态时,提示出现错误: Error contacting service. It is probably not running,说明zookeeper在启动时还是出现了错误。
应对措施
那么第一步我们需要查看zookeeper的日志信息,对症下药。使用vim或者cat命令查看在zookeeper目录下的zookeeper.out文件,就会出现如题错误zookeeper.out nohup: failed to run command `java(/XX/XX)’: No such file or directory
出现这种错误提示是因为zookeeper在运行的时候没有找到 ‘java’ 这个东西!!
改正方法:
- 检查、修改环境变量
这种错误出现在/etc/profile(/etc/environment、~/.bashrc)文件当中,检查java环境配置是否正确,自己依照文件中的java地址在文件目录中找一下,看能否找到对应的java。如果可以那么就不是什么低级错误,用下一种方法。
2.修改zkServer.sh文件
那么既然是在运行zkerver.sh 脚本时出现的错误,那么就一定与该文件相关。
从错误提示中我们可以看出是nohup执行某个命令时出错,找到对应的句子:
nohup “$JAVA” “-Dzookeeper.log.dir=${ZOO_LOG_DIR}” “-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}”
就是这个$JAVA,把他改成你的java环境变量。
我的做法是在文件开头加入:
1.export JAVA_HOME=/usr/java/jdk-8u211-linux-x64/jdk1.8.0_211(java环境 = /etc/profile中的环境变量)
2. 修改该句为nohup “$JAVA_HOME/bin/java” “-Dzookeeper.log.dir=${ZOO_LOG_DIR}” “-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}”($JAVA_HOME/bin/java就等于/usr/java/jdk-8u211-linux-x64/jdk1.8.0_211/bin/java, 也就是你的java的地址)
重启zookeeper后,大功告成!!!