泰漲知識 | Shell腳本之一鍵啟動和關閉Zookeeper腳本
ZooKeeper是Apache軟件基金會的一個軟件項目,它為大型分布式計算提供開源的分布式配置服務、同步服務和命名注冊。
ZooKeeper的架構通過冗余服務實現(xiàn)高可用性。Zookeeper的設計目標是將那些復雜且容易出錯的分布式一致性服務封裝起來,構成一個高效可靠的原語集,并以一系列簡單易用的接口提供給用戶使用。
一個典型的分布式數(shù)據(jù)一致性的解決方案,分布式應用程序可以基于它實現(xiàn)諸如數(shù)據(jù)發(fā)布訂閱、負載均衡、命名服務、分布式協(xié)調通知、集群管理、Master選舉、分布式鎖和分布式隊列等功能。
Zookeeper模型圖如下:

ZooKeeper集群由一組Server節(jié)點組成,這一組Server節(jié)點中只存在一個Leader的節(jié)點,其他節(jié)點都為Follower。
啟動時選舉出leader。
ZooKeeper使用自定義的原子消息協(xié)議,保證了整個系統(tǒng)中的節(jié)點數(shù)據(jù)的一致性。
Leader節(jié)點在接收到數(shù)據(jù)變更請求后,先寫磁盤再寫內存。
所以Zookeeper集群在配置好之后,咱們在啟動的時候需要每一個節(jié)點都去啟動一次,咱們只有幾個集群的情況下是可行的,但是集群一旦達到幾百上千個,咱們還能單獨的去啟動Zookeeper集群嗎?答案是肯定不可能的,所以這時就需要使用Shell命令一鍵啟動Zookeeper集群了。
具體怎么設置一鍵啟動Zookeeper集群呢,具體操作步驟如下:
01/設置一鍵啟動Zookeeper?腳本
1、進入目錄:cd /usr/local/zookeeper/zookeeper-3.4.6/bin/
2、編寫一鍵啟動配置文件:vim ?zkStart-all.sh,添加shell腳本如下:

3、寫好后保存,為腳本添加執(zhí)行權限:chmod 777 zkStart-all.sh
4、進入目錄(或任意目錄):cd /usr/local/zookeeper/zookeeper-3.4.6/bin/
5、一鍵啟動:./zkStart-all.sh或者sh zkStart-all.sh(任意目錄啟動用這個命令)
6、查看狀態(tài):jps
7、執(zhí)行效果如下圖:

02/設置一鍵停止Zookeeper?腳本
1、進入目錄:cd /usr/local/zookeeper/zookeeper-3.4.6/bin/
2、編寫一鍵啟動配置文件:vim zkStop-all.sh,添加Shell腳本如下:

3、寫好后保存,為腳本添加執(zhí)行權限:chmod 777 zkStop.sh
4、進入目錄(或任意目錄):cd /usr/local/zookeeper/zookeeper-3.4.6/bin/
5、一鍵啟動:./zkStop-all.sh 或者:sh zkStop-all.sh(任意目錄關閉用這個命令)
6、查看狀態(tài):jps
7、執(zhí)行效果如下圖:

03/技能拓展
以上兩個shell腳本在執(zhí)行完成后需要查看節(jié)點狀態(tài),但是每臺節(jié)點都需要查看則要輸入三次jps命令,這個過程也比較麻煩,同時也比較耽誤時間,那么我們是否可以用腳本完成jps命令查看節(jié)點狀態(tài)的操作?答案也是肯定的,都可以使用Shell腳本完成節(jié)點狀態(tài)的查看,但是由于jps命令是Java提供的,所以,咱們在編寫腳本的時候,需要找到JDK的安裝目錄編寫到腳本里面去,具體Shell腳本命令如下:

執(zhí)行效果如下圖:
