zookeeper自動化指令碼---一鍵啟動
阿新 • • 發佈:2019-01-21
交流QQ: 824203453
基於zookeeper 3.4.6版本
因為zookeeper本身沒有批量啟動指令碼,所以,每次都需要一臺機器一臺機器的啟動。非常麻煩。
這裡提供一個zookeeper的叢集批量啟動指令碼。
#!/bin/bash ZOOKEEPER_HOME=/root/apps/zookeeper-3.4.6 if [ $ZOOKEEPER_HOME != "" ]; then ZOOCFG=$ZOOKEEPER_HOME/conf/zoo.cfg SLAVES=$(cat "$ZOOCFG" | sed '/^server/!d;s/^.*=//;s/:.*$//g;/^$/d') for s in $SLAVES do echo "INFO:starting zookeeper on ${s}" ssh $s "source /etc/profile;$ZOOKEEPER_HOME/bin/zkServer.sh start" if [ $? != 0 ]; then echo "Can not starting zookeeper server on host $s}" exit 1 fi done fi
思路:
設定zookeeper安裝目錄
獲取安裝目錄下的zoo.cfg配置檔案(該檔案中有所有的zookeeper節點)
獲取該配置檔案中的所有的zookeeper節點。
迴圈遍歷,利用ssh命令啟動每臺機器上的zookeeper。
注意事項:
1,本次測試的3臺機器主機名分別是hdp-01,hdp-02和 hdp-03。 然後hdp-01到hdp-02和hdp-01到hdp-03的單向免密登入是通的。否則就需要先進行免密登入配置。(因為沒有全部配通免密登入,所有啟動命令只能在hdp-01上執行即可,如果想在任意一臺機器上都能執行,那麼就需要配置所有的免密登入)
2,在ssh 遠端啟動指令碼中,先執行了 source /etc/profile,重新載入了系統環境變數。目的是為了把jdk的命令載入到當前系統環境中,否則報錯。
報錯如下:
一鍵停止,只需要把start命令改成stop命令即可,獲取通過引數穿的具體的操作也是ok的。
交流QQ: 824203453