梳理ssh zk集群无法启动的原因 以及书写排查错误的思路

在部署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
发布了33 篇原创文章 · 获赞 1 · 访问量 2587

猜你喜欢

转载自blog.csdn.net/weixin_44131414/article/details/100042456
今日推荐