在CentOS上部署Zookeeper集群需要以下幾個步驟:
Zookeeper需要Java環境,首先確保你的系統上已經安裝了Java。如果沒有安裝,可以使用以下命令安裝OpenJDK:
sudo yum install java-1.8.0-openjdk-devel
驗證Java安裝:
java -version
從Apache Zookeeper官方網站下載最新版本的Zookeeper,并解壓到你的服務器上。
wget https://www.apache.org/dyn/closer.cgi?action=download&filename=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
在每個Zookeeper節點上創建配置文件和數據目錄。
sudo mkdir -p /var/lib/zookeeper
sudo chown -R $USER:$USER /var/lib/zookeeper
sudo mkdir -p /var/log/zookeeper
sudo chown -R $USER:$USER /var/log/zookeeper
復制示例配置文件并進行修改:
sudo cp /opt/apache-zookeeper-3.7.0-bin/conf/zoo_sample.cfg /opt/apache-zookeeper-3.7.0-bin/conf/zoo.cfg
編輯zoo.cfg
文件:
sudo vi /opt/apache-zookeeper-3.7.0-bin/conf/zoo.cfg
在zoo.cfg
文件中添加或修改以下內容:
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
其中,zoo1
, zoo2
, zoo3
是你的Zookeeper節點的主機名或IP地址。
在每個Zookeeper節點的數據目錄中創建一個myid
文件,用于標識該節點。
echo "1" | sudo tee /var/lib/zookeeper/myid # 在第一個節點上
echo "2" | sudo tee /var/lib/zookeeper/myid # 在第二個節點上
echo "3" | sudo tee /var/lib/zookeeper/myid # 在第三個節點上
在每個節點上啟動Zookeeper服務:
/opt/apache-zookeeper-3.7.0-bin/bin/zkServer.sh start
在任意一個節點上檢查Zookeeper集群的狀態:
/opt/apache-zookeeper-3.7.0-bin/bin/zkServer.sh status
你應該能看到類似以下的輸出,表明集群已經成功啟動并運行:
ZooKeeper JMX enabled by default
Using config: /opt/apache-zookeeper-3.7.0-bin/conf/zoo.cfg
Mode: leader
確保防火墻允許Zookeeper節點之間的通信。你可以使用以下命令打開必要的端口:
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
定期檢查Zookeeper的日志文件以確保集群的健康狀態:
tail -f /var/log/zookeeper/zookeeper.out
通過以上步驟,你應該能夠在CentOS上成功部署一個Zookeeper集群。