為了方便管理zookeeper 集群, 我們寫了一個(gè)zookeeper 腳本
- 在bin/zkEnv.sh文件中,zk 增加JAVA_HOME .(有些時(shí)候無法找到JAVA_HOME,所以先增加JAVA_HOME)
ZOOBINDIR="${ZOOBINDIR:-/usr/bin}"
ZOOKEEPER_PREFIX="${ZOOBINDIR}/.."
#在上面的2段文字下面增加 JAVA_HOME, 下面的路徑是你的 jdk HOME目錄
export JAVA_HOME=/opt/soft/jdk1.8.0_161
- 3 臺(tái)機(jī)器免密登錄, 分別為zk01,zk02,zk03
# zk01 執(zhí)行
ssh-copy-id root@zk02
ssh-copy-id root@zk03
# zk02 執(zhí)行
ssh-copy-id root@zk01
ssh-copy-id root@zk03
# zk03 執(zhí)行
ssh-copy-id root@zk01
ssh-copy-id root@zk02
這個(gè)時(shí)候, 你可以使用 在任意一臺(tái)機(jī)器上面執(zhí)行免密登錄
- 在2臺(tái)機(jī)器下面的 bin 目錄下面增加 zkCluster.sh
#!/bin/bash
red='\e[91m'
green='\e[92m'
yellow='\e[93m'
magenta='\e[95m'
cyan='\e[96m'
none='\e[0m'
zk_home=$zk_home
cluster_array=(192.168.17.81 192.168.17.82 192.168.17.83)
# 1. 獲取輸入?yún)?shù)個(gè)數(shù),如果沒有參數(shù),直接退出
if (($# == 0)); then
echo -e ------------------- ${yellow}no args${none} -------------------
exit
fi
# 2. 根據(jù)指令循環(huán)操作集群
case $1 in
"start") {
for host in ${cluster_array[@]}; do
echo -e ------------------- $yellow$host$none -------------------
ssh $host "$zk_home/bin/zkServer.sh start"
done
} ;;
"stop") {
for host in ${cluster_array[@]}; do
echo -e ------------------- $yellow$host$none -------------------
ssh $host "$zk_home/bin/zkServer.sh stop"
done
} ;;
"status") {
for host in ${cluster_array[@]}; do
echo -e ------------------- $yellow$host$none -------------------
ssh $host "$zk_home/bin/zkServer.sh status"
done
} ;;
esac
上面的 cluster_array 就是你的3臺(tái)機(jī)器ip ,也可以使用別名代替
這個(gè)時(shí)候, 你可以在任意一臺(tái)機(jī)器的zk bin目錄下面執(zhí)行
- 群?jiǎn)?dòng): ./zkCluster.sh start
- 群關(guān)閉: ./zkCluster.sh stop
- 群查看狀態(tài): ./zkCluster.sh status
如果腳本沒有執(zhí)行權(quán)限, 增加執(zhí)行權(quán)限chmod u+x zkCluster.sh即可.
完結(jié)撒花, 路過點(diǎn)贊, 月入10W !