Zookeeper教程—單機和集羣安裝

下載

推薦下載最新穩定版本:Zookeeper-3.4.11

下載地址:http://www-eu.apache.org/dist/zookeeper/


Zookeeper三種工作方式

(1)單點模式:在單臺機器上部署,存在單點故障模式,適合開發和測試環境部署。

(2)集羣模式:在多臺機器上部署,適合線上正式環境部署。

(3)僞集羣部署:在單臺環境上部署多個實例,仍然存在單點故障問題,適合開發和測試集羣環境。


Zookeeper腳本介紹:

zkServer.sh     : ZooKeeper服務器的啓動、停止和重啓腳本;
zkCli.sh        : ZooKeeper的簡易客戶端;
zkEnv.sh        : 設置ZooKeeper的環境變量;
zkCleanup.sh    : 清理ZooKeeper歷史數據,包括事務日誌文件和快照數據文件。


安裝需知

(1)需要Jdk,可以使用本系統的包管理系統,或者下載Jdk,例如:http://java.sun.com/javase/downloads/index.jsp

(2)設置堆內存大小,避免發生內存交換。內存大小可以通過反覆測試確定,保守情況下,可以考慮本機內存大小的75%,例如4G機器使用3G作爲堆內存大小

(3)防火牆開放所需要的所有端口

(4)安裝Zookeeper服務安裝包,可以通過如下頁面下載:

http://www-eu.apache.org/dist/zookeeper/

(5)創建配置文件,可以找到zookeeper-3.4.11/conf/zoo_sample.cfg,複製爲zoo.cfg,進行文件配置.

(6)檢查Zookeeper啓動,使用命令:

zookeeper/bin/zkServer.sh status

(7)連接Zookeeper,使用命令:

bin/zkCli.sh -server 127.0.0.1:2181

連接集羣時,使用逗號分隔host:port

(8)配置集羣時建議使用奇數個服務器,因爲只有超過一半以上服務正常時,集羣保持可用,所以至少需要奇數個服務器。

(9)啓動Zokeeper,使用命令:

bin/zkServer.sh start


配置介紹

配置文件模板如下:

tickTime=2000
dataDir=/opt/zookeeper1
clientPort=2181
initLimit=5
syncLimit=2
server.1=192.168.211.1:2888:3888
server.2=192.168.211.2:2888:3888

tickTime:Zookeeper 服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每個 tickTime 時間就會發送一個心跳。

dataDir:Zookeeper 保存數據的目錄,記錄事物、讀寫日誌,在集羣情況下,集羣標識文件myid也放在該目錄下。

clientPort:Zookeeper客戶端連接Zookeeper服務器的端口。

initLimit:客戶端初始化連接Zookeeper服務器最長能忍受的多少個心跳時間單元。

syncLimit:Leader 與 Follower 之間發送消息,請求和應答時間長度,最長不能超過多少個 tickTime 的時間單元。

server.1=192.168.211.1:2888:3888:1是指的服務器標識,也就是dataDir下的myid文件中的標識。192.168.211.1是指集羣中該服務器的地址。2888是指Zookeeper各個對等服務間通信的端口。3888是指Zookeeper領導者選舉的端口。


單機部署

在conf/zoo.cfg文件下,輸入如下配置:

tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
最後驗證。


集羣部署

在conf/zoo.cfg文件下,輸入如下配置:

tickTime=2000
dataDir=/opt/zookeeper1
clientPort=2181
initLimit=5
syncLimit=2
server.1=192.168.211.1:2888:3888
server.2=192.168.211.2:2888:3888

在/opt/zookeeper1文件夾下,創建myid文件,在192.168.211.1機器中配置如下:

1

僞集羣部署

僞裝集羣與集羣最大的區別在於,僞集羣host地址相同,後面兩個Port不同,例如:

tickTime=2000
dataDir=/opt/zookeeper1
clientPort=2181
initLimit=5
syncLimit=2
server.1=192.168.211.1:2881:3882
server.2=192.168.211.1:2883:3884


參考:

[1] https://zookeeper.apache.org/

[2] https://blog.csdn.net/u014394255/article/details/53980656

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章