Zookeeper叢集的安裝與配置
阿新 • • 發佈:2019-01-29
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
更多內容請關注: