在集群中要启动、关闭、查看Zookeeper状态,可以通过编写脚本的方式一键实现。
【具体步骤】
- 新建zk.sh脚本文件
具体命令:sudo vi zk.sh
- 编写脚本文件如下:
#!/bin/bash
# 这里是集群主机名,有几个写几个
HOSTS="master slave1"
# 由运行脚本命令传参(start、stop、status)
case $1 in
"start"){
# 根据参数遍历集群开启Zookeeper
for H in $HOSTS
do
echo ----------zookeeper $H 启动----------
# 这里hadoop是用户名
ssh hadoop@$H "source ~/.bashrc;/opt/zookeeper/bin/zkServer.sh start"
done
}
;;
"stop"){
for H in $HOSTS
do
echo ----------zookeeper $H 停止----------
ssh hadoop@$H "source ~/.bashrc;/opt/zookeeper/bin/zkServer.sh stop"
done
}
;;
"status"){
for H in $HOSTS
do
echo ----------zookeeper $H 状态----------
ssh hadoop@$H "source ~/.bashrc;/opt/zookeeper/bin/zkServer.sh status"
done
}
;;
esac
- 运行zk.sh脚本测试:
./zk.sh start
./zk.sh stop
./zk.sh status
【可能出现的问题】
启动Zookeeper失败,通过命令cat zookeeper.out
查看日志报错:
nohup: failed to run command ‘java’: No such file or directory
解决方法:
1.修改zookeeper/bin/zkServer.sh文件,:set nu
查看行数,在文件开头27行加入
export JAVA_HOME=/usr/java/jdk-8u211-linux-x64/jdk1.8.0_211
(java环境 = ~/.bashrc中的环境变量)
2. 修改140行为 nohup "$JAVA_HOME/bin/java"