Zookeeper安裝與配置

Zookeeper是一個分佈式的應用程序協調服務,是Hadoop和Hbase的重要組件,是樹型的服務目錄,支持變更推送。還可作爲微服務架構(spring cloud、dubbo)的服務註冊中心。


1.Zookeeper安裝有三種方式:

單擊模式:Zookeeper運行一臺機器上
僞集羣模式:一臺物理機上運行多個zookeeper實例
集羣模式:Zookeeper運行一個集羣上,適合生產環境
Zookeeper通過複製實現高可用,集羣中有超過半數以上機器處於可用狀態,就能繼續提供服務。跟Zookeeper的複製策略有關:Zookeeper確保對實例節點znode樹的每一個修改被複制到集羣中超過半數以上的服務器。集羣中只有一個Leader,剩下節點爲follower。

2.集羣安裝(以安裝三個Zookeeper-3.4.10實例集羣爲例)

其中某個Zookeeper節點操作爲例,其他類似。
下載:wget https://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
tar -xzvf zookeeper-3.4.10.tar.gz
cd zookeeper-3.4.10
cp conf/zoo_sample.cfg conf/zoo.cfg

啓動:bin/zkServer.sh start (其他節點分別依次啓動)

查看狀態:bin/zkServer.sh status

[root@zookeeper1 zookeeper]# sh bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower

3.配置

配置zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper
clientPort=2181
#tickTime:這個時間是作爲 Zookeeper 服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每個 tickTime 時間就會發送一個心跳,以毫秒爲單位。
initLimit:LF初始通信時限,集羣中的follower服務器(F)與leader服務器(L)之間初始連接時能容忍的最多心跳數(tickTime的數量)
syncLimit:集羣中的follower服務器與leader服務器之間請求和應答之間能容忍的最多心跳數(tickTime的數量)。
#dataDir:就是 Zookeeper 保存數據的目錄,默認情況下,Zookeeper 將寫數據的日誌文件也保存在這個目錄裏。
#clientPort:這個端口就是客戶端連接 Zookeeper 服務器的端口,Zookeeper 會監聽這個端口,接受客戶端的訪問請求。   
dataLogDir:日誌文件目錄,Zookeeper保存日誌文件的目錄
##服務器名稱與地址:集羣信息(服務器編號,服務器地址,LF通信端口,選舉端口),規則如:server.N=yyy:A:B
其中N表示服務器編號,YYY表示服務器的IP地址,A爲LF通信端口,表示該服務器與集羣中的leader交換的信息的端口。B爲選舉端口,表示選舉新leader時服務器間相互通信的端口(當leader掛掉時,其餘服務器會相互通信,選擇出新的leader)。一般來說,集羣中每個服務器的A端口都是一樣,每個服務器的B端口也是一樣。但是當所採用的爲僞集羣時,IP地址都一樣,只能時A端口和B端口不一樣。
server.1=10.42.10.1:8888:8889
server.2=10.42.10.2:8888:8889
server.3=10.42.10.3:8888:8889

4.新建myid文件

集羣模式下需配置myid文件,dataDir對應目錄下創建myid文件,即/tmp/zookeeper下要有myid文件。Zookeeper啓動時讀取myid文件內容,與zoo.cfg文件配置信息“server.n”相比較判斷出哪個server。
ls /tmp/zookeeper
myid version-2 zookeeper_server.pid
myid指明自己的ID,對應”server.n“數字n,第一臺爲數字1,第一臺爲數字2,第一臺爲數字3。Zookeeper根據該文件來決定Zookeeper集羣各個znode節點的身份。

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