1. 程式人生 > >在滴滴雲 DC2 雲伺服器上搭建 ZooKeeper 叢集實戰(一)

在滴滴雲 DC2 雲伺服器上搭建 ZooKeeper 叢集實戰(一)

ZooKeeper 簡介

ZooKeeper 是一個高效的分散式協調服務,可以提供配置資訊管理、命名、分散式同步、叢集管理、資料庫切換等服務。

ZooKeeper 的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的介面和效能高效、功能穩定的系統提供給使用者。它不適合用來儲存大量資訊,可以用來儲存一些配置、釋出與訂閱等少量資訊。

Hadoop、Storm、訊息中介軟體、RPC 服務框架、分散式資料庫同步系統,這些都是 ZooKeeper 的應用場景。

ZooKeeper 搭建

準備工作

1.硬體準備

根據 ZooKeeper 的選舉演算法,叢集搭建需要 2n+1 臺機器。我們在

滴滴雲上購買三臺 DC2,只有一臺 DC2 需要 EIP,我們把這臺 DC2 作為跳板機及叢集中的一個節點,另外兩臺機器可以不用購買 EIP。

本文選擇三臺廣州一區 1 核、1G 記憶體、40G 高效雲盤的通用型 DC2、一個 1M 的 EIP。

EIP 繫結其中的一臺 DC2,三臺機器通過內網連結。

2.軟體準備

本文選擇的是 CentOS7.5 映象。

確保這三臺機器安裝好 Java 環境,本文選擇的是 jdk1.8.0_191 版本。

ZooKeeper 單機版搭建

1.獲取 ZooKeeper

可以去 ZooKeeper 官網選擇版本下載, 本文選擇的是 ZooKeeper3.4.9 版本。由於本文選購的是 1M 頻寬的 EIP,所以載入速度略慢,耐心等待。

wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz

2.建立 ZooKeeper 目錄

此目錄為 ZooKeeper 解壓目錄:

sudo mkdir /zookeeper

3.解壓 ZooKeeper 至目標目錄

sudo tar -zxf zookeeper-3.4.9.tar.gz -C /zookeeper

4.進入 ZooKeeper 的目錄,建立 ZooKeeper 的資料目錄和日誌目錄

cd /zookeeper/zookeeper-3.4.9
mkdir data
mkdir logs

5.配置檔案建立

進入 ZooKeeper 的配置檔案目錄,該目錄下自帶 sample 版本的配置檔案。建立zookeeper的配置檔案,本文以 sample 版本進行修改。

cd /zookeeper/zookeeper-3.4.9/conf
cp zoo_sample.cfg zoo.cfg

6.修改配置檔案

一個普通標題 一個普通標題
tickTime 心跳間隔時間
initLimit 叢集中的follower伺服器(F)與leader伺服器(L)之間初始連線時能容忍的最多心跳數(tickTime的數量)
syncLimit 叢集中flower伺服器(F)跟leader(L)伺服器之間的請求和答應最多能容忍的心跳數
dataDir 資料資訊
dataLogDir 日誌資訊
clientPort zookeeper對外暴露的埠
admin.serverPort 管理控制檯埠
server.id=host:port:port 叢集配置時,第一個埠是用於叢集節點間的通訊,比如接收更新資料的命令,特殊的使用場景是叢集的follower使用這個埠連線到leader;第二個埠用於叢集的leader選舉流程

對 zoo.cfg 檔案進行修改,如下圖進行配置修改:

在這裡插入圖片描述

7.啟動 ZooKeeper

sudo sh /zookeeper/zookeeper-3.4.9/bin/zkServer.sh start

檢視當前 ZooKeeper 狀態:

sh /zookeeper/zookeeper-3.4.9/bin/zkServer.sh status

在這裡插入圖片描述

如圖,當前的模式為 standalone。至此,ZooKeeper 單機版搭建完畢。

ZooKeeper 叢集版搭建

1.配置檔案修改

如單機版操作步驟相同,對三臺機器分配安裝 ZooKeeper。如下圖對三臺例項的配置檔案做修改。分別對應三臺例項的內網 IP。

在這裡插入圖片描述

2.myid 檔案

/zookeeper/zookeeper-3.4.9/data 目錄下建立文字檔案 myid,每個例項記錄當前機器安排的例項編號,即 server.{id} 中的 id

3.三臺機器分別執行如下命令

sudo sh /zookeeper/zookeeper-3.4.9/bin/zkServer.sh start

三臺機器中執行如下命令可看到對應例項的狀態。其中兩個例項的模式是 follower,一個例項的模式是 leader。

sh /zookeeper/zookeeper-3.4.9/bin/zkServer.sh status

至此,ZooKeeper 選舉完畢,可以對外提供服務。

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

總結

ZooKeeper 的搭建過程相對簡單,過程中遇到問題可以在 ZooKeeper.out 中檢視啟動日誌尋找解決辦法。

本文介紹了一個簡單的 ZooKeeper 叢集的搭建方法,更深層次的應用可檢視 ZooKeeper 官方文件。