Zookeeper叢集搭建

大雄45發表於2023-01-13

Zookeeper簡單介紹

Zookeeper官方:ZooKeeper是一個分散式的,開放原始碼的分散式應用程式協調服務,是Google的Chubby開源的實現,是Hadoop和Hbase的重要元件。它是一個為分散式應用提供一致性服務的軟體,提供的功能包括:配置維護、域名服務、分散式同步、組服務等。

Zookeeper單機模式搭建

  環境:Centos 7、jdk1.8、zookeeper-3.4.10

  • 下載 Zookeeper【Zookeeper官網
  • 解壓:tar -zxvf zookeeper-3.4.10.tar.gz
  • 進入 zookeeper-3.4.10/conf 目錄將 zoo_sample.cfg 檔名修改為 zoo.cfg:mv zoo_sample.cfg zoo.cfg
  • 進入 zookeeper-3.4.10/conf 目錄啟動 Zookeeper :sh zkServer.sh start
  • 驗證是否啟動成功:sh zkServer.sh status(最後一行出現 standalone 則成功)
    在這裡插入圖片描述
  • 連線 Zookeeper
 sh zkCli.sh
複製程式碼

在這裡插入圖片描述

Zookeeper叢集模式搭建

  • 修改 zoo.cfg 檔案,在 zoo.cfg 檔案中新增如下配置:
### server.A=B:C:D
### A:第幾號伺服器,B:服務IP,C:leader 和 follower 通訊埠,D:備用 leader 埠
server.1=192.168.43.200:2188:2888
server.2=192.168.43.201:2188:2888
server.3=192.168.43.202:2188:2888
複製程式碼
  • 將 zookeeper 拷貝到另外兩臺機器
scp -r zookeeper-3.4.10/ root@192.168.43.201:/tools
scp -r zookeeper-3.4.10/ root@192.168.43.202:/tools
複製程式碼
  • 設定 myid 檔案,告訴 Zookeeper 當前是哪一臺伺服器
### 設定 1 號伺服器
echo "1" >/tmp/zookeeper/myid
### 設定 2 號伺服器
echo "2" >/tmp/zookeeper/myid
### 設定 3 號伺服器
echo "3" >/tmp/zookeeper/myid
複製程式碼
  • 順序啟動這三個 Zookeeper 伺服器
  • 驗證啟動是否成功,列印日誌最後一行出現 leader 或 follower 則啟動成功
  • 連線 Zookeeper 服務
sh zkCli.sh -server 192.168.43.201:2181,192.168.43.200:2181,192.168.43.202:2181
複製程式碼

在這裡插入圖片描述

Zookeeper叢集角色介紹

  • Leader:   ZooKeeper叢集的主節點,負責響應所有對ZooKeeper狀態變更的請求。會將每個狀態更新請求進行排序和編號,以便保證整個叢集內部訊息處理的FIFO,寫操作都走 leader,ZK中只有一個 leader
  • Follower :   Followe響應本伺服器上的讀請求外,處理leader的提議,leader提交該提議時在本地也進行提交。   注意:     leader 和follower 構成ZooKeeper叢集的法定人數,也就是說,只有他們才參與新leader的選舉、響應leader的提議。 幫助leader處理讀請求,有投票權選舉 leader。
  • Observer :   提高讀取吞吐量。observer 不需要將事務持久化到磁碟,若 observer 被重啟,需要 leader 重新同步整個名字空間。 沒有投票權利(因為 observer 不屬於法定人數),只可以處理讀請求

相關文章