搭建Zookeeper叢集
1. 搭建要求
真實的叢集是需要部署在不同的伺服器上的,但是在我們測試時同時啟動十幾個虛擬機器記憶體會吃不消,所以這裡我們搭建偽叢集,也就是把所有的服務都搭建在一臺虛擬機器上,用埠進行區分。
我們這裡要求搭建一個三個節點的 Zookeeper 叢集(偽叢集)。
2. 準備工作
重新部署一臺虛擬機器作為我們搭建叢集的測試伺服器。
(1)安裝 JDK 【此步驟省略】。
(2)Zookeeper 壓縮包上傳到伺服器
(3)將 Zookeeper 解壓 ,建立 data 目錄 ,將 conf 下 zoo_sample.cfg 檔案改名為 zoo.cfg【mv zoo_sample.cfg zoo.cfg】
(4)建立 /usr/local/zookeeper-cluster 目錄,將解壓後的 Zookeeper 複製到以下三個目錄
[root@mini1 ~]# cp -r zookeeper-3.4.5 /usr/local/zookeeper-cluster/zookeeper-1
[root@mini1 ~]# cp -r zookeeper-3.4.5 /usr/local/zookeeper-cluster/zookeeper-2
[root@mini1 ~]# cp -r zookeeper-3.4.5 /usr/local/zookeeper-cluster/zookeeper-3
複製程式碼
(5) 配置每一個 Zookeeper 的 dataDir(zoo.cfg) clientPort 分別為 2181 2182 2183
修改 /usr/local/zookeeper-cluster/zookeeper-1/conf/zoo.cfg
修改 /usr/local/zookeeper-cluster/zookeeper-2/conf/zoo.cfg
clientPort=2182
dataDir=/usr/local/zookeeper-cluster/zookeeper-2/data
複製程式碼
修改 /usr/local/zookeeper-cluster/zookeeper-3/conf/zoo.cfg
clientPort=2183
dataDir=/usr/local/zookeeper-cluster/zookeeper-3/data
複製程式碼
3. 配置叢集
(1)在每個 zookeeper 的 data 目錄下建立一個 myid 檔案,內容分別是 1、2、3 。這個檔案就是記錄每個伺服器的 ID
(2)在每一個zookeeper 的 zoo.cfg配置客戶端訪問埠(clientPort)和叢集伺服器IP列表。
server.1=192.168.75.10:2881:3881
server.2=192.168.75.10:2882:3882
server.3=192.168.75.10:2883:3883
複製程式碼
解釋:server. 伺服器 ID= 伺服器 IP 地址:伺服器之間通訊埠:伺服器之間投票選舉埠
4. 啟動叢集
啟動叢集就是分別啟動每個例項。
cd /usr/local/zookeeper-cluster/zookeeper-1/bin/
./zkServer.sh start
cd /usr/local/zookeeper-cluster/zookeeper-2/bin/
./zkServer.sh start
cd /usr/local/zookeeper-cluster/zookeeper-3/bin/
./zkServer.sh start
複製程式碼
啟動後我們查詢一下每個例項的執行狀態
先查詢第一個服務
Mode 為 follower 表示是跟隨者(從)
再查詢第二個服務 Mode 為 leader 表示是領導者(主)
查詢第三個為跟隨者(從)