在Linux下搭建Zookeeper集群是一個相對復雜的過程,需要仔細規劃和執行。以下是一個基本的步驟指南,假設你有至少三臺服務器,并且已經安裝了Java環境。
/usr/local/zookeeper
。在每臺服務器上編輯 /etc/profile
文件,添加以下內容:
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$ZOOKEEPER_HOME/bin:$PATH
然后使環境變量生效:
source /etc/profile
mkdir -p /var/lib/zookeeper/data
mkdir -p /var/lib/zookeeper/log
zoo_sample.cfg
文件復制為 zoo.cfg
并編輯。cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg
zoo.cfg
文件,添加或修改以下內容:tickTime=2000
initLimit=10
syncLimit=5
clientPort=2181
dataDir=/var/lib/zookeeper/data
server.1=server1:2888:3888
server.2=server2:2888:3888
server.3=server3:2888:3888
其中,server.1
、server.2
、server.3
分別對應每臺服務器的ID和地址。
在每臺服務器的數據目錄下創建 myid
文件,并寫入對應的服務器ID。
echo "1" > /var/lib/zookeeper/data/myid # 對應server.1
echo "2" > /var/lib/zookeeper/data/myid # 對應server.2
echo "3" > /var/lib/zookeeper/data/myid # 對應server.3
在每臺服務器上啟動Zookeeper服務:
cd /usr/local/zookeeper/bin
./zkServer.sh start
在任意一臺服務器上使用以下命令查看集群狀態:
./zkServer.sh status
你應該能看到類似以下的輸出,表示集群已經成功啟動:
[1] leader:0.0.0.0:2888:3888
[2] follower:0.0.0.0:2888:3888
[3] follower:0.0.0.0:2888:3888
確保防火墻允許Zookeeper使用的端口(默認是2181、2888、3888):
sudo firewall-cmd --zone=public --add-port=2181/tcp --permanent
sudo firewall-cmd --zone=public --add-port=2888/tcp --permanent
sudo firewall-cmd --zone=public --add-port=3888/tcp --permanent
sudo firewall-cmd --reload
通過以上步驟,你應該能夠在Linux上成功搭建一個Zookeeper集群。如果在搭建過程中遇到問題,可以參考官方文檔或相關教程進行排查。