1. 代码
(1) 创建脚本目录
mkdir -p ~/bin
(2) 创建脚本文件
touch ~/bin/zookeeper-cluster
(3) 给脚本文件执行权限
chmod u+x zookeeper-cluster
(4) 向加入脚本文件中增加脚本内容
#!/bin/bash
# 1. 环境变量配置
# HADOOP和JDK的位置
export HADOOP_HOME=/home/hadoop/hadoop-3.1.3
export JAVA_HOME=/home/hadoop/jdk1.8.0_144
export ZOOKEEPER_HOME=/home/hadoop/apache-zookeeper
# 需要操作的主机列表, 通过空格隔开
hostnames=(hadoop181 hadoop182 hadoop183)
user=`whoami`
# 2. 获取输入参数个数,如果没有参数,直接退出
argsCount=$#
if((argsCount==0)); then
exit 0;
fi
# 3. 接受参数
command=$1
# 4. 操作方法
function execute_cmd(){
for host in "${hostnames[@]}"
do
exc_command="$ZOOKEEPER_HOME/bin/$2.sh $1"
echo "[DEBUG] ssh to $host to execute commands [ $exc_command ] "
ssh $user@$host $exc_command
done
}
# 5. 主命令
case $command in
"start" )
echo "[info] ready to start the Zookeeper cluster "
execute_cmd start zkServer
#echo "[DEBUG] Start the Zookeeper service "
#$ZOOKEEPER_HOME/bin/$zkServer.sh start
echo "[info] System startup complete about the Zookeeper cluster "
;;
"stop" )
echo "[info] ready to stop the Hadoop cluster "
execute_cmd stop zkServer
#echo "[DEBUG] Start the Zookeeper service "
#$ZOOKEEPER_HOME/bin/$zkServer.sh stop
echo "[info] System shutdown complete about the Zookeeper cluster "
;;
"status" )
echo "[info] ready to show the Hadoop cluster status"
execute_cmd status zkServer
;;
* )
echo "i don't know what do you want!"
;;
esac
2. 效果演示
(1) 启动服务
zookeeper-cluster start
(2) 停止服务
zookeeper-cluster stop
(3) 查看服务状态
zookeeper-cluster status
到此 zookeeper 集群小脚本制作完成 ~~