叢集思路:先搞定一台伺服器,再克隆出兩台,形成叢集!
1. 安裝zookeeper
具體可以檢視上篇文章介紹
zookeeper本地安裝
2. 配置伺服器編号
在/opt/zookeeper/zkData建立myid檔案
vim myid
- 在檔案中添加與server對應的編号:1
- 其餘兩台伺服器分别對應2和3
3. 配置zoo.cfg檔案
- 打開zoo.cfg檔案,增加如下配置
#######################cluster##########################
server.1=192.168.204.141:2888:3888
server.2=192.168.204.142:2888:3888
server.3=192.168.204.143:2888:3888
配置參數解讀 server.A=B:C:D
- A:一個數字,表示第幾号伺服器,叢集模式下配置的/opt/zookeeper/zkData/myid檔案裡面的資料就是A的值
- B:伺服器的ip位址
- C:與叢集中Leader伺服器交換資訊的端口
- D:選舉時專用端口,萬一叢集中的Leader伺服器挂了,需要一個端口來重新進行選舉,選出一個新的Leader,而這個端口就是用來執行選舉時伺服器互相通信的端口。
4. 配置其餘兩台伺服器
- 在虛拟機資料目錄vms下,建立zk02
- 将本台伺服器資料目錄下的.vmx檔案和所有的.vmdk檔案分别拷貝zk02下
- 虛拟機->檔案->打開 (選擇zk02下的.vmx檔案)
- 開啟此虛拟機,彈出對話框,選擇“我已複制該虛拟機” 5. 進入系統後,修改linux中的ip,修改/opt/zookeeper/zkData/myid中的數值為2
- 第三台伺服器zk03,重複上面的步驟
5. 叢集操作
- 每台伺服器的防火牆必須關閉
systemctl stop firewalld.service
- 啟動第1台,進入bin目錄下
./zkServer.sh start
- 檢視狀态
./zkServer.sh status
注意:因為沒有超過半數以上的伺服器,是以叢集失敗 (防火牆沒有關閉也會導緻失敗)
ZooKeeper JMX enabled by default Using config: /opt/zookeeper/bin/../conf/zoo.cfg Client port found: 2181. Client address: localhost. Error contacting service. It is probably not running.
-
當啟動第2台伺服器時
檢視第1台的狀态:Mode: follower
檢視第2台的狀态:Mode: leader
- 啟動用戶端
./zkCli.sh