ssh zookeeper集群无法启动的排查

文章目录

    • 1 问题重现
    • 2 寻找日志
      • 2.1 查看配置文件
      • 2.2 查看conf下有什么
      • 2.3 查看zkServer.sh
    • 3 问题解决

1 问题重现

有如下shell脚本start-zk.sh,内容如下

#!/bin/bash

#zk
ssh hadoop001 "${ZOOKEEPER_HOME}/bin/zkServer.sh start"
ssh hadoop002 "${ZOOKEEPER_HOME}/bin/zkServer.sh start"
ssh hadoop003 "${ZOOKEEPER_HOME}/bin/zkServer.sh start"

我们执行shell脚本,看下结果:
ssh zookeeper集群无法启动的排查_第1张图片
上面的感觉启动成功了,但是我们用下面命令看下是否启动:

ps -ef | grep zookeeper

从下图结果可以看出,zookeeper并没有启动成功
在这里插入图片描述

2 寻找日志

2.1 查看配置文件

因为配置文件为zoo.cfg,我们看下里面有没有配置什么关于日志信息的
ssh zookeeper集群无法启动的排查_第2张图片
从上图可以看出,并没有关于log的路径,那么通过zoo.cfg查找问题失败

2.2 查看conf下有什么

从conf文件下可以看到log4f.properties文件
ssh zookeeper集群无法启动的排查_第3张图片
我们查看log4j.properties里有没有关于log的信息
ssh zookeeper集群无法启动的排查_第4张图片
那我们查找下这个文件,看有没有:
在这里插入图片描述
从上图看出,也没有zookeeper.log文件,那么通过zookeeper.log查找问题也失败

2.3 查看zkServer.sh

我们启动的时候,是调用zkServer.sh的start,我们看看start做了啥
ssh zookeeper集群无法启动的排查_第5张图片
从这里可以看出,输出的日志文件名变成了zookeeper.out,我们再搜索下zookeeper.out

find / -name 'zookeeper.out'

在这里插入图片描述
我们看下zookeeper.out内容

cat zookeeper.out

在这里插入图片描述
报错,显示java命令找不到,我们执行下面命令ssh 然后再执行which java,也发现找不到

[hadoop@ruozedata001 ~]$ ssh hadoop001 "which java"
which: no java in (/usr/local/bin:/usr/bin)

那可以推断出环境变量没有加载

3 问题解决

通过网上资料查询,ssh执行远程命令和脚本的时候,只会加载个人home目录用户下的.bashrc,那么我们在.bashrc目录下添加下java的环境变量

vi ~/.bashrc

添加java路径:

#java env
export JAVA_HOME=/usr/java/jdk1.8.0_45
export PATH=$JAVA_HOME/bin:$PATH

在通过ssh,可以看出,可以找到java了
在这里插入图片描述
然后把hadoop001配置好的.bashrc复制到hadoop002,hadoop003机器

scp ~/.bashrc hadoop002:/home/hadoop/
scp ~/.bashrc hadoop003:/home/hadoop/

然后再执行启动zk集群的脚本:

./start-zk.sh

可以发现,通过ssh远程启动zk集群成功了
ssh zookeeper集群无法启动的排查_第6张图片

你可能感兴趣的:(Shell,Issues)