1. 程式人生 > >Zookeeper三種安裝模式介紹

Zookeeper三種安裝模式介紹

Zookeeper的安裝模式分為三種,分別為:單機模式叢集模式叢集偽分佈模式。Zookeeper單機模式的安裝比較簡單,如果第一次接觸Zookeeper的話,建議安裝Zookeeper單機模式或者叢集偽分佈模式。

1.     單機模式

Zookeeper要求java環境才能執行,並且需要java6以上版本,並且需要配置環境變數。在Zookeeper入門指南已經描述的很清楚,這裡就不再進行描述。

使用單機模式時使用者需要注意:這種配置方式下沒有Zookeeper副本,所以如果Zookeeper伺服器出現故障,Zookeeper服務將會停止。

2.     叢集模式

為了獲得可靠的Zookeeper服務,使用者應該在一個叢集上部署Zookeeper。只要叢集上大多數的Zookeeper服務啟動了,那麼總的Zookeeper服務將是可用的。另外,最好使用奇數

臺機器。如果Zookeeper擁有5臺機器,那麼它就能處理2臺機器的故障了。

之後的操作和單機模式的安裝類似,我們同樣需要對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服務例項。