1. 程式人生 > >Zookeeper叢集的安裝與配置

Zookeeper叢集的安裝與配置

Zookeeper叢集的安裝配置實際上非常簡單,只需編輯幾個配置檔案即可。

有一點需要注意的,Zookeeper叢集中Zookeeper服務的數量儘量是奇數個,因為Zookeeper的仲裁機制要求超過半數的服務正常才可以,所以如果是4個的話,那兩個正常是無法工作的,必須要3個正常才行。因此zookeeper叢集中服務的數量就至少是3個,這樣的話保證2個不掛掉就能正常工作。

下面是具體的配置過程:

首先編輯配置檔案zoo.conf

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/data/zk1
clientPort=2181
server.1=127.0.0.1:2222:2223
server.2=192.168.1.101:3333:3334
server.3=192.168.1.102:4444:4445

配置檔案中主要是最後3行,指定了3個zookeeper伺服器server.1,server.2和server.3

其中配置了3個伺服器的ip和兩個埠號,兩個埠號分別用於仲裁通訊和群首選舉。如果zookeeper執行在不同的伺服器上,那麼埠號是可以相同的,如果是測試執行在同一臺伺服器上,那麼把埠號錯開。

同樣的,clientPort也是,如果執行在同一個伺服器上,也選擇不同的埠號。

當啟動一個伺服器時,我們需要知道啟動的是哪個伺服器。一個伺服器通過讀取dataDir配置的目錄下一個名為myid的檔案來獲取伺服器ID資訊。可以通過以下命令來建立這些檔案:

echo 1 > /tmp/data/zk1/myid
echo 2 > /tmp/data/zk2/myid
echo 3 > /tmp/data/zk3/myid

這樣子,配置就基本完成了,然後啟動Zookeeper伺服器:
./zkServer.sh start ./zoo1.cfg

如果只啟動一個伺服器的話zookeeper.out的日誌輸出裡會報錯,因為Zookeeper服務的數量少於半數,當啟動了第二個的時候就正常了,可以進行工作了。

如果是用客戶端進行連線,則客戶端也要指定叢集:

./zkCli.sh -server 127.0.0.1:2181,192.168.1.101:2182,192.168.1.102:2181

客戶端會自動連線的一個server,如果這個server掛了,客戶端會切換到另一個。

轉載請註明出處:http://blog.csdn.net/redstarofsleep

更多內容請關注: