在Debian上搭建Zookeeper集群需要以下步驟:
Zookeeper需要Java環境,首先確保每臺服務器上都安裝了Java 8??梢酝ㄟ^以下命令安裝Java:
sudo apt-get update
sudo apt-get install openjdk-8-jdk
驗證Java安裝:
java -version
下載Zookeeper安裝包并解壓到指定目錄,例如 /opt/zookeeper
。
wget https://downloads.apache.org/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz
tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz -C /opt/zookeeper
在每臺服務器上編輯 zoo.cfg
文件,通常位于 /opt/zookeeper/conf
目錄下。關鍵配置項包括:
dataDir
: 指定每個節點的數據存儲目錄,應為服務器上的唯一路徑,例如 /var/lib/zookeeper/data
。clientPort
: 指定每個節點對外提供服務的客戶端連接端口,通常設為 2181
。server.x
: 配置集群成員信息,其中 x
是一個唯一的整數標識符(如 1
、2
、3
)。格式為 hostname:peerport:leaderelectionport
。示例配置:
server.1=server1.example.com:2888:3888
server.2=server2.example.com:2888:3888
server.3=server3.example.com:2888:3888
在每臺服務器的數據目錄下創建一個名為 myid
的文件,內容僅為一個整數,對應于 zoo.cfg
文件中 server.x
配置項中的 x
。
echo "1" > /opt/zookeeper/data/myid
確保所有服務器上的相關端口(客戶端端口 2181
,以及集群內部通信端口 2888
和 3888
)在防火墻中開放。
sudo ufw allow 2181/tcp
sudo ufw allow 2888/tcp
sudo ufw allow 3888/tcp
sudo ufw reload
在每臺服務器上,通過以下命令啟動Zookeeper服務:
cd /opt/zookeeper/bin
./zkServer.sh start
通過Zookeeper CLI連接到任意一個節點,檢查集群狀態。
./zkCli.sh -server server1.example.com:2181
在CLI中執行 stat
命令,觀察輸出信息中的 mode
字段,確認是否有節點處于 leader
狀態,其余節點應為 follower
狀態。
如果需要初始化集群,可以在任意一個節點上執行以下命令:
./zkServer.sh start -c
這將啟動Zookeeper集群并初始化。