ZooKeeper集羣搭建 windows篇

ZooKeeper是一個分佈式的,開源的分佈式應用程序協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要組件。

它是一個爲分佈式應用提供一致性服務的軟件,提供的功能包括:配置維護、域名服務、分佈式同步、組服務等。

單機版

1.下載ZooKeeper,選擇你需要的版本

http://apache.fayea.com/zookeeper/


我選擇的是zookeeper-3.4.9穩定版

2. 解壓到你的文件 我存放的是D:\API\zookeeper-3.4.9

3.創建一個zoo.cfg,我這裏是使用拷貝zoo_sample.cfg,然後直接重命名。解釋下各個屬性:

tickTime 每次心跳檢測的間隔時間,單位是毫秒
initLimit 集羣中follower服務器和Leader服務器之間初始連接時能容忍的最大心跳次數,超過這個時間連接失敗。如果超過這個時間大多數follower沒有完成同步,Leader宣佈放棄領導位置,進行一次新的選舉。默認爲10,如果zk集羣數量龐大可以適當調大這個參數。
syncLimit 集羣中follower服務器和Leader服務器之間請求和應答之間能容忍的最大心跳次數,超過這個時間此follower將被丟棄,所有關聯到這個跟隨者的客戶端將連接到另外一個跟隨者。
dataDir 存放數據的目錄
clientPort 客戶端連接使用的端口號
maxClientCnxns 允許的最大連接數
autopurge.snapRetainCount 保存在數據目錄的快照數
autopurge.purgeInterva 清除任務的執行間隔,單位是小時

配置自定義的配置

tickTime=2000
initLimit=10
syncLimit=5
clientPort=2181
dataDir=D:/data/zookeeper

4.啓動zookeeper。

雙擊bin下面的zkServer.cmd

5.查看zookeeper狀態,需要用到netcat
下載地址:https://eternallybored.org/misc/netcat/

解壓出來,然後命令行到同一個目錄,敲擊命令:

echo ruok | nc localhost 2181

可以看到有一個imok應答,當然你也可以使用conf命令查看配置

6.連接到zookeeper

打開一個新的命令行,切換到zookeeper的bin目錄下面,敲入命令:

zkCli -server localhost:2181

然後你就可以自己創建zNode了,以上是單機版的安裝配置步驟。


僞集羣模式

1.分別拷貝三個zookeeper副本,分別命名爲zk1 zk2 zk3,目錄結構如下:

2.分別配置zk1、zk2、zk3的zoo.cfg

zk1:
tickTime=2000
initLimit=10
syncLimit=5
clientPort=2181
dataDir=D:/data/zk_cluster/zk_data/zk1

server.1=localhost:2881:3887
server.2=localhost:2882:3888
server.3=localhost:2883:3889

zk2:
tickTime=2000
initLimit=10
syncLimit=5
clientPort=2182
dataDir=D:/data/zk_cluster/zk_data/zk2

server.1=localhost:2881:3887
server.2=localhost:2882:3888
server.3=localhost:2883:3889
zk3:
tickTime=2000
initLimit=10
syncLimit=5
clientPort=2183
dataDir=D:/data/zk_cluster/zk_data/zk3

server.1=localhost:2881:3887
server.2=localhost:2882:3888
server.3=localhost:2883:3889

注意事項
  1. 由於部署在同一臺機器上,clientPort不能重複,建議Server_A的clientPort=2181,Server_B的clientPort=2182,依次遞增。 
  2. server.A=B:C:D:其中 A 是一個數字,表示這個是第幾號服務器;B 是這個服務器的 ip 地址;C 表示的是這個服務器與集羣中的 Leader 服務器交換信息的端口;D 表示的是萬一集羣中的 Leader 服務器掛了,需要一個端口來重新進行選舉,選出一個新的 Leader,而這個端口就是用來執行選舉時服務器相互通信的端口。如果是僞集羣的配置方式,由於 B 都是一樣,所以不同的 ZooKeeper實例通信端口號不能一樣,所以要給它們分配不同的端口號。 
  3. 集羣模式下還要配置一個文件 myid,這個文件在 dataDir 目錄下,這個文件裏面只有一個數據就是 A 的值,ZooKeeper啓動時會讀取這個文件,拿到裏面的數據與 zoo.cfg 裏面的配置信息比較從而判斷到底是那個 server。
3.我們創建myid文件,每個文件裏面只放對象server的id,但注意的是這個文件一定要是無BOM的



4.分別啓動各個實例

雙擊

前幾臺實例出現實例異常是正常情況,全部啓動好了就消失了


5.查看各個實例


6.僞集羣模式搭建完成,真正的集羣模式更簡單,端口號完全可以完全一樣

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