1. 程式人生 > 實用技巧 >Zookeeper的安裝和簡單的使用

Zookeeper的安裝和簡單的使用

前言:

Zookeeper簡介

Zookeeper是一個高效的分散式協調服務,可以提供配置資訊管理、命名、分散式同步、叢集管理、資料庫切換等服務。它不適合用來儲存大量資訊,可以用來儲存一些配置、釋出與訂閱等少量資訊。Hadoop、Storm、訊息中介軟體、RPC服務框架、分散式資料庫同步系統,這些都是Zookeeper的應用場景。

Zookeeper叢集中節點個數一般為奇數個(>=3),若叢集中Master掛掉,剩餘節點個數在半數以上時,就可以推舉新的主節點,繼續對外提供服務。

客戶端發起事務請求,事務請求的結果在整個Zookeeper叢集中所有機器上的應用情況是一致的。不會出現叢集中部分機器應用了該事務,而存在另外一部分叢集中機器沒有應用該事務的情況。在Zookeeper叢集中的任何一臺機器,其看到的伺服器的資料模型是一致的。Zookeeper能夠保證客戶端請求的順序,每個請求分配一個全域性唯一的遞增編號,用來反映事務操作的先後順序。Zookeeper將全量資料儲存在記憶體中,並直接服務於所有的非事務請求,在以讀操作為主的場景中效能非常突出。

Zookeeper使用的資料結構為樹形結構,根節點為"/"。Zookeeper叢集中的節點,根據其身份特性分為leader、follower、observer。leader負責客戶端writer型別的請求;follower負責客戶端reader型別的請求,並參與leader選舉;observer是特殊的follower,可以接收客戶端reader請求,但是不會參與選舉,可以用來擴容系統支撐能力,提高讀取速度。

Zookeeper是一個基於觀察者模式設計的分散式服務管理框架,負責儲存和管理相關資料,接收觀察者的註冊。一旦這些資料的狀態發生變化,zookeeper就負責通知那些已經在zookeeper叢集進行註冊並關心這些狀態發生變化的觀察者,以便觀察者執行相關操作。

Zookeeper使用的是ZAB原子訊息廣播協議,節點之間的一致性演算法為Paxos,能夠保障分散式環境中資料的一致性。分散式場景下高可用是Zookeeper的特性,可以採用第三方客戶端的實現,即Curator框架。

一:上傳安裝包到master並解壓


tar -xvf zookeeper-3.4.6.tar.gz

二:配置環境變數


vim /etc/profile


ZOOKEEPER_HOME=/usr/local/soft/zookeeper-3.4.6
export PATH=$PATH:$ZOOKEEPER_HOME/bin


source /etc/profile

三:修改配置檔案


cd conf
cp zoo_sample.cfg zoo.cfg


然後修改zoo.cfg
dataDir=/usr/local/soft/zookeeper-3.4.6/data


增加
server.0=master:2888:3888
server.1=node1:2888:3888
server.2=node2:2888:3888

四:同步到其它節點


scp -r zookeeper-3.4.6 node1:`pwd`
scp -r zookeeper-3.4.6 node2:`pwd`


配置node1和node2的環境變數
scp /etc/profile node1:/etc/


scp /etc/profile node2:/etc/

五:建立/usr/local/soft/zookeeper-3.4.6/data目錄,所有節點都要建立


mkdir /usr/local/soft/zookeeper-3.4.6/data
在data目錄下建立myid檔案
vim myid 分別加上0,1,2



六:啟動zk


zkServer.sh start 三臺都需要執行

可以檢視jps看是否啟動zookeeper


zkServer.sh status 檢視狀態


當有一個leader的時候啟動成功

七:連線zk

在cd /usr/local/soft/zookeeper-3.4.6/bin 目錄下執行./zkCli.sh 就出出現如下畫面

zk shell命令

建立目錄
create /test test
create /test/a 1

獲取資料
get /test
ls /test
delete 只能刪除沒有子節點的節點
rmr /test 刪除節點


八:重置zk

1、殺掉所有zk程序
kiil -9 pid

2、刪除data目錄下的version檔案
rm -rf /usr/local/soft/zookeeper-3.4.6/data/version-2

3、啟動zk
zkServer.sh start