在CentOS上部署Zookeeper的三節點集群需要遵循以下步驟:
安裝Java:Zookeeper需要Java環境,確保每臺服務器上都安裝了Java。
sudo yum install java-1.8.0-openjdk-devel
下載并解壓Zookeeper:
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
tar -xzvf apache-zookeeper-3.7.0-bin.tar.gz -C /opt
ln -s /opt/apache-zookeeper-3.7.0-bin /opt/zookeeper
在每臺服務器上創建Zookeeper的數據目錄和日志目錄,并設置相應的權限。
mkdir -p /var/lib/zookeeper/data
mkdir -p /var/log/zookeeper
chown -R $USER:$USER /var/lib/zookeeper
chown -R $USER:$USER /var/log/zookeeper
zoo.cfg在每臺服務器的 /opt/zookeeper/conf 目錄下編輯 zoo.cfg 文件,添加以下內容:
tickTime=2000
dataDir=/var/lib/zookeeper/data
clientPort=2181
initLimit=5
syncLimit=2
server.1=server1:2888:3888
server.2=server2:2888:3888
server.3=server3:2888:3888
其中,server.1, server.2, server.3 分別對應三臺服務器的IP地址或主機名。
在每臺服務器的 /var/lib/zookeeper/data 目錄下創建一個名為 myid 的文件,并寫入對應的服務器ID(1, 2, 3)。
echo "1" > /var/lib/zookeeper/data/myid # 在server1上
echo "2" > /var/lib/zookeeper/data/myid # 在server2上
echo "3" > /var/lib/zookeeper/data/myid # 在server3上
在每臺服務器上啟動Zookeeper服務。
/opt/zookeeper/bin/zkServer.sh start
在任意一臺服務器上使用以下命令檢查集群狀態:
/opt/zookeeper/bin/zkServer.sh status
你應該能看到類似以下的輸出,表示集群正常運行:
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/conf/zoo.cfg
Mode: leader
確保防火墻允許Zookeeper的端口(默認2181, 2888, 3888)通信。
sudo firewall-cmd --permanent --zone=public --add-port=2181/tcp
sudo firewall-cmd --permanent --zone=public --add-port=2888/tcp
sudo firewall-cmd --permanent --zone=public --add-port=3888/tcp
sudo firewall-cmd --reload
定期檢查Zookeeper的日志文件以確保沒有錯誤信息。
tail -f /var/log/zookeeper/zookeeper.out
通過以上步驟,你就可以在CentOS上成功部署一個Zookeeper的三節點集群。