1. 程式人生 > >Linux系統下Zookeeper叢集環境的搭建

Linux系統下Zookeeper叢集環境的搭建

 1:下載Zookeeper

下載地址:http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.10/

2:配置和安裝Zookeeper

#我的目錄統一放在/opt下面

#首先建立Zookeeper專案目錄

mkdir zookeeper

#再進入新建好的zookeeper目錄下建立模擬的三個伺服器的專案目錄(server1,server2,server3)

mkdir  server1

mkdir  server2

mkdir  server3

#將下載好的zookeeper-3.4.10.tar.gz解壓到三個server中

tar -zxvf  zookeeper-3.4.10.tar.gz

#在server1,server2,server3中分別建立下面兩個資料夾

mkdir data  #存放快照日誌

mkdir datalog  #存放事務日誌

修改配置檔案

進入到解壓後的zookeeper-3.4.10的conf目錄.

#進入到conf目錄

/opt/zookeeper/server1/zookeeper-3.4.10/conf
/opt/zookeeper/server2/zookeeper-3.4.10/conf
/opt/zookeeper/server2/zookeeper-3.4.10/conf

conf目錄中的zoo_sample.cfg  這個檔案是官方給我們的zookeeper的樣板檔案,我們複製一份命名為zoo.cfg儲存在和樣板檔案同目錄下(server1,server2,server3操作步驟一樣),zoo.cfg是官方指定的檔案命名規則。

cp zoo_sample.cfg  zoo.cfg

修改/opt/zookeeper/server1/zookeeper-3.4.10/conf/zoo.cfg檔案如下:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/server1/data
dataLogDir=/opt/zookeeper/server1/datalog
clientPort=2181
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

server2,server3中的/zookeeper-3.4.10/conf/zoo.cfg檔案和server1中的更改內容大致相同,需要注意的是dataDir,dataLogDir屬性的值要改為server2,server3相應的data和datalog目錄. clientPort=2181埠號要在server2和server3中分別改為 clientPort=2182和 clientPort=2183

配置檔案解釋:

#tickTime:
這個時間是作為 Zookeeper 伺服器之間或客戶端與伺服器之間維持心跳的時間間隔,也就是每個 tickTime 時間就會發送一個心跳。
#initLimit:
這個配置項是用來配置 Zookeeper 接受客戶端(這裡所說的客戶端不是使用者連線 Zookeeper 伺服器的客戶端,而是 Zookeeper 伺服器叢集中連線到 Leader 的 Follower 伺服器)初始化連線時最長能忍受多少個心跳時間間隔數。當已經超過 5個心跳的時間(也就是 tickTime)長度後 Zookeeper 伺服器還沒有收到客戶端的返回資訊,那麼表明這個客戶端連線失敗。總的時間長度就是 5*2000=10 秒
#syncLimit:
這個配置項標識 Leader 與Follower 之間傳送訊息,請求和應答時間長度,最長不能超過多少個 tickTime 的時間長度,總的時間長度就是5*2000=10秒
#dataDir:
快照日誌的儲存路徑
#dataLogDir:
事物日誌的儲存路徑,如果不配置這個那麼事物日誌會預設儲存到dataDir制定的目錄,這樣會嚴重影響zk的效能,當zk吞吐量較大的時候,產生的事物日誌、快照日誌太多
#clientPort:
這個埠就是客戶端連線 Zookeeper 伺服器的埠,Zookeeper 會監聽這個埠,接受客戶端的訪問請求。修改他的埠改大點

建立myid檔案

#在server中的data資料夾下建立myid檔案

#server1
/opt/zookeeper/server1/data/myid
檔案中內容為 1  

#server2
/opt/zookeeper/server2/data/myid
檔案中內容為 2

#server3
/opt/zookeeper/server3/data/myid
檔案中內容為 3

  vim myid 輸入文字的內容

啟動服務並檢視

1,啟動服務

#進入到Zookeeper的bin目錄下
#server1
cd /opt/zookeeper/server1/zookeeper-3.4.10/bin

#啟動服務
./zkServer.sh start

#server2
cd /opt/zookeeper/server2/zookeeper-3.4.10/bin

#啟動服務
./zkServer.sh start

#server3
cd /opt/zookeeper/server3/zookeeper-3.4.10/bin

#啟動服務
./zkServer.sh start

#啟動成功後的資訊(server1為例):

2,檢查服務狀態

#檢查伺服器狀態
./zkServer.sh status

#下面的狀態為啟動成功。

[[email protected] bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/server2/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: leader#Mode有兩種型別:leader和follower,leader代表領導(主節點),follower代表下屬(備節點)
#zk叢集一般只有一個leader,多個follower,主一般是相應客戶端的讀寫請求,而從主同步資料,當主掛掉之後就會從follower裡投票選舉一個leader出來。

至此,zookeeper叢集就成功搭建完成了。