Zookeeper三種安裝模式介紹
Zookeeper的安裝模式分為三種,分別為:單機模式、叢集模式和叢集偽分佈模式。Zookeeper單機模式的安裝比較簡單,如果第一次接觸Zookeeper的話,建議安裝Zookeeper單機模式或者叢集偽分佈模式。
1. 單機模式
Zookeeper要求java環境才能執行,並且需要java6以上版本,並且需要配置環境變數。在Zookeeper入門指南已經描述的很清楚,這裡就不再進行描述。
使用單機模式時使用者需要注意:這種配置方式下沒有Zookeeper副本,所以如果Zookeeper伺服器出現故障,Zookeeper服務將會停止。
2. 叢集模式
為了獲得可靠的Zookeeper服務,使用者應該在一個叢集上部署Zookeeper。只要叢集上大多數的Zookeeper服務啟動了,那麼總的Zookeeper服務將是可用的。另外,最好使用奇數
之後的操作和單機模式的安裝類似,我們同樣需要對java環境進行配置。不同之處在於每臺機器上conf/zoo.cfg配置檔案的引數設定,參考如下:
tickTime=2000
dataDir=/zookeeper/
clientPort=2181
initLimit=5
syncLimit=2
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
“server.id=host:port:port”的描述請檢視Zookeeper入門指南,這裡只進行用例配置。在這個例子中,每臺機器使用三個埠,分別是:clientPort,2181;port,2888;port:3888。
我們在擁有三臺機器的叢集上測試使用Zookeeper服務,下面程式碼清單是Zookeeper的相關配置:
tickTime=2000
initLimit=10
sysncLimit=5
clientPort=2181
server.1=ip1.2888:3888
server.2=ip2:2888:3888
server.3=ip3:2888:3888
清單中的ip分別對應的配置是分散式Zookeeper的ip地址。
3. 叢集偽分佈
簡單來說,叢集偽分佈模式就是在單擊下模擬叢集的Zookeeper服務。
那麼,如何對Zookeeper的叢集偽分佈模式呢?其實很簡單,在Zookeeper配置文件中,clientPort引數用來配置客戶端連線Zookeeper的埠。Server1.1=ip1:2887:3887中,ip1指示的是組成Zookeeper服務的機器ip地址,2887是組成Zookeeper服務的機器之間通訊的埠,3887為用來進行leader選舉的埠。叢集偽分佈模式是我們使用每個配置文件模擬一臺機器,也就是說,需要在單臺機器上執行多個Zookeeper例項。但是我們必須要保證各個配置文件的clientPort不能衝突。
下面是我們所配置的叢集偽分佈模式,通過zoo1.cfg,zoo2.cfg,zoo3.cfg模擬了三臺機器的Zookeeper叢集。詳見以下程式碼清單:
程式碼清單1:zoo1.cfg;
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/zookeeper1
clientPort=2181
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889
zoo2.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/zookeeper2
clientPort=2182
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889
zoo3.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/zookeeper3
clientPort=2183
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889
從上述三個程式碼清單中可以看到,除了clientPort不同之外,dataDir也不同。另外,不要忘記在dataDir所對應的目錄中建立myid檔案來指定對應的Zookeeper服務例項。