在部署hadoop时 ,使用shell脚本远程 ssh启动,zk集群启动失败整理:
1.报错信息
#使用ssh远程执行命令 发现zk没有启动
[root@ruozedata001 hadoop_shell]# ssh ruozedata001 "$ZOOKEEPER_HOME/bin/zkServer.sh start"
JMX enabled by default
Using config: /root/apps/zookeeper-3.4.6/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
#查看zookeeper.out,报错信息 找不到Java
nohup: failed to run command ‘java’: No such file or directory
2.解决问题
1。查看zkServer.sh 脚本,发现Java在zkEnv.sh中赋值
if [ -e "$ZOOBIN/../libexec/zkEnv.sh" ]; then
. "$ZOOBINDIR/../libexec/zkEnv.sh"
else
. "$ZOOBINDIR/zkEnv.sh"
fi
#Java的赋值
if [ "$JAVA_HOME" != "" ]; then
JAVA="$JAVA_HOME/bin/java"
else
JAVA=java
fi
2.知晓 $JAVA_HOME 为空 ,则Java的值使用下面的那个 JAVA=java赋值 原因所在
3.检查 $JAVA_HOME,重新编辑zkEnv.sh 打印 $JAVA_HOME的值,发现值确实是空的
- 第一种解决方法:
#在zkEnv.sh写死路径
if [ "$JAVA_HOME" != "" ]; then
JAVA="$JAVA_HOME/bin/java"
else
JAVA=/usr/java/jdk1.8.0_45/bin/java
fi
#执行 查看 成功启动zk
[root@ruozedata001 hadoop_shell]# ssh ruozedata001 "$ZOOKEEPER_HOME/bin/zkServer.sh start"
[root@ruozedata001 bin]# ps -ef |grep zookeeper
root 3546 1 0 15:56 ? 00:00:00 /root/apps/jdk1.8.0_221/bin/java -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp /root/apps/zookeeper-3.4.6/bin/../build/classes:/root/apps/zookeeper-3.4.6/bin/../build/lib/*.jar:/root/apps/zookeeper-3.4.6/bin/../lib/slf4j-log4j12-1.6.1.jar:/root/apps/zookeeper-3.4.6/bin/../lib/slf4j-api-1.6.1.jar:/root/apps/zookeeper-3.4.6/bin/../lib/netty-3.7.0.Final.jar:/root/apps/zookeeper-3.4.6/bin/../lib/log4j-1.2.16.jar:/root/apps/zookeeper-3.4.6/bin/../lib/jline-0.9.94.jar:/root/apps/zookeeper-3.4.6/bin/../zookeeper-3.4.6.jar:/root/apps/zookeeper-3.4.6/bin/../src/java/lib/*.jar:/root/apps/zookeeper-3.4.6/bin/../conf: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /root/apps/zookeeper-3.4.6/bin/../conf/zoo.cfg
root 3601 2274 0 15:58 pts/0 00:00:00 grep --color=auto zookeeper
- 第二种解决方法
查找文档发现 ssh远程执行的时候,,加载的配置文件是个人.bashrc,那么直接在.bashrc 添加jdk的环境变量即可
[root@ruozedata001 bin]# vi ~/.bashrc
export JAVA_HOME=/root/apps/jdk1.8.0_221
export PATH=$JAVA_HOME/bin:$PATH