在分布式集群中,經常會有多台Zookeeper機器,如果每台機器啟動,不但麻煩且浪費時間,有時還會有疏漏,所以編寫一個shell腳本,統一對所有zk機器進行管理,顯得尤為重要了。
本文假設有三台機器需要管理,分別是hadoop111,hadoop112,hadoop113,管理start status stop 三種命令:
1. 首先在本用戶的bin目錄下(若無bin目錄,可以新建該目錄),創建一個zk.sh腳本:
cd /home/用戶名/bin vi zk.sh
2.增加腳本代碼:
#! /bin/bash case $1 in "start"){ for i in hadoop111 hadoop112 hadoop113 do ssh $i "/opt/module/zookeeper-3.4.10/bin/zkServer.sh start" done };; "status"){ for i in hadoop111 hadoop112 hadoop113 do ssh $i "/opt/module/zookeeper-3.4.10/bin/zkServer.sh status" done };; "stop"){ for i in hadoop111 hadoop112 hadoop113 do ssh $i "/opt/module/zookeeper-3.4.10/bin/zkServer.sh stop" done };; esac
3.給腳本賦權限:
chmod 777 zk.sh
4.使用方法:
zookeeper啟動命令
zk.sh start
zookeeper查看狀態
zk.sh status
zookeeper停止命令
zk.sh stop
注意事項:
1. 集群內的各個服務器需要配置ssh登錄,不知道如何配置SSH的,點擊 linux配置ssh登錄;
2.保證集群之間可以正常通信,比如關閉了防火牆或者開了對應端口;
3.如果是有更多的機器,只需要在腳本的for i in 后面添加機器hostname即可;
4.啟動zookeeper的路徑,一定要寫絕對路徑;