方式一
#!/bin/bash #zookeeper集群启停脚本 ip="master slave1 slave2 slave3 slave4" #IP地址或域名都可以 zk-home="/home/zookeeper/zookeeper-3.4.14" case $1 in "start"){ for i in $ip do ssh $i "${zk-home}/bin/zkServer.sh start" done };; "stop"){ for i in $ip do ssh $i "${zk-home}/bin/zkServer.sh stop" done };; "restart"){ for i in $ip do ssh $i "${zk-home}/bin/zkServer.sh restart" done } esac
方式二
#!/bin/bash #zookeeper集群启停脚本 case $1 in "start"){ for i in master slave1 slave2 slave3 slave4 do echo ------------------------- zookeeper $i 已启动 --------------------------- ssh $i "/home/zookeeper/zookeeper-3.4.14/bin/zkServer.sh start" done } ;; "stop"){ for i in master slave1 slave2 slave3 slave4 do echo ------------------------- zookeeper $i 已停止 --------------------------- ssh $i "/home/zookeeper/zookeeper-3.4.14/bin/zkServer.sh stop" done } ;; "status"){ for i in master slave1 slave2 slave3 slave4 do echo ------------------------- zookeeper $i 状态 --------------------------- ssh $i "/home/zookeeper/zookeeper-3.4.14/bin/zkServer.sh status" done } ;; esac
如果当我们运行以上任一脚本后,看到启动成功了,用jps命令查看时,没有相对应的zk进程QuorumPeerMain,可能由于环境变量导致的。
此时我们需要把profile中的配置信息 echo 到 .bashrc 中 cat /etc/profile >> ~/.bashrc
另外再把 export JAVA_HOME=/home/jdk/jdk1.8.0_221/ 加入 /zookeeper/bin/zkEnv.sh 的文件中即可解决!