天天看點

zookeeper簡介,叢集部署

zookeeper是什麼

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

zookeeper簡介,叢集部署

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

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-.tar.gz -C /zookeeper
           

2、進入到解壓目錄的conf目錄下,将 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-/data
server.101=192.168.137.101:: 
server.102=192.168.137.102::
server.103=192.168.137.103::
           

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

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

scp -rp /home/zookeeper/zookeeper-./ root@192..:/home/zookeeper/zookeeper-./
scp -rp /home/zookeeper/zookeeper-./ root@192..:/home/zookeeper/zookeeper-./
           

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:(CONNECTED) ] create /name liuxg #建立節點
[zk: localhost:(CONNECTED) ] get /name #設定節點
           

繼續閱讀