1. 程式人生 > >zookeeper簡介,叢集部署

zookeeper簡介,叢集部署

zookeeper是什麼

Zookeeper 分散式服務框架是Apache Hadoop 的一個子專案,它主要是用來解決分散式應用中經常遇到的一些資料管理問題,如:統一命名服務、狀態同步服務、叢集管理、分散式應用配置項的管理等。

這裡寫圖片描述

好像說得比較抽象,舉個場景,在叢集分散式服務中,我們常常遇到這些問題

1、叢集中,每個節點的狀態怎麼監控,怎麼進行負載均衡,一個節點down了,怎麼讓客戶端知道?
2、節點那麼多,如果有配置,我們怎麼實現修改一個節點的配置,所有的節點都能修改到?
3、我們怎麼動態的移除和新增一個節點,難道要停止叢集服務,新增移除再重啟?
4、怎樣簡單,快速的管理叢集服務?

zookeeper可以幫我實現這些,它簡單點就是一個檔案系統加通知機制!!

zookeeper能做什麼

1、命名服務
我們可以在zookeeper檔案系統中建一個唯一的目錄,在我們使用tborg無法確定上游程式的部署機器時即可與下游程式約定好路徑目錄,通過目錄路徑可以相互發現

2、統一配置
我們可以把配置檔案配置到zookeeper的檔案系統中,連結到zookeeper的節點只需監控該zookeeper的配置,即可以實現一次配置,所有節點同步

3、叢集管理
zookeeper可以幫我們選舉master,叢集中節點的動態新增和刪除以及容災還有事件通知狀態同步

4、分散式鎖
zookeeper叢集的每個節點的資料都是一致的, 那麼我們可以通過這些節點來作為鎖的標誌。分散式鎖能保證叢集中任何節點訪問資料,資料都一致。

zookeeper安裝配置

單節點部署

1、上傳zookerper安裝包,解壓安裝包到某個路徑下

tar -zxvf zookeeper-3.4.5.tar.gz -C /zookeeper

2、進入到解壓目錄的conf目錄下,將 zoo_sample.cfg複製一份為zoo.cfg

cp zoo_sample.cfg  zoo.cfg

3、進入到解壓目錄的bin目錄下,啟動服務

./zkServer.sh start #啟動服務
./zkServer.sh stop  #停止服務
./zkServer.sh status #檢視服務狀態
./zkCli.sh #進入客戶端
叢集部署

1、修改配置檔案zoo.cfg,新增叢集配置

dataDir=/home/zookeeper/zookeeper-3.4.5/data
server.101=192.168.137.101:2888:3888 
server.102=192.168.137.102:2888:3888
server.103=192.168.137.103:2888:3888

2、 在/home/zookeeper/zookeeper-3.4.5/建立一個目錄為data並建立年一個myid的檔案,存放server.N中的N

3、通過ssh將解壓包copy到其他機器

scp -rp /home/zookeeper/zookeeper-3.4.5/ root@192.168.137.102:/home/zookeeper/zookeeper-3.4.5/
scp -rp /home/zookeeper/zookeeper-3.4.5/ root@192.168.137.103:/home/zookeeper/zookeeper-3.4.5/

4、注意要把/home/zookeeper/zookeeper-3.4.5/data/myid裡面的內容修改為各自的server.N中的N

5、啟動服務,需要把三臺機器的服務端都啟動

./zkServer.sh start #啟動服務
./zkServer.sh stop  #停止服務
./zkServer.sh status #檢視服務狀態
./zkCli.sh #進入客戶端

6、進行測試
分倆部,第一部可以在101的機器上建立一個節點,看在102,103是否能獲取到節點

./zkCli.sh #進入客戶端
[zk: localhost:2181(CONNECTED) 1] create /name liuxg #建立節點
[zk: localhost:2181(CONNECTED) 0] get /name #設定節點