在Ubuntu上部署Zookeeper集群需要遵循以下步驟:
Zookeeper依賴于Java運行環境,因此首先需要安裝Java。
sudo apt update
sudo apt install openjdk-8-jdk
驗證Java安裝:
java -version
從Apache Zookeeper官方網站下載最新版本的Zookeeper,并解壓到指定目錄。
wget https://downloads.apache.org/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節點創建配置文件。假設我們有三個節點,分別為node1
, node2
, node3
。
在每個節點上創建數據目錄:
sudo mkdir -p /var/lib/zookeeper/data
sudo chown -R $USER:$USER /var/lib/zookeeper
在每個節點上創建日志目錄:
sudo mkdir -p /var/log/zookeeper
sudo chown -R $USER:$USER /var/log/zookeeper
復制示例配置文件并進行修改:
cp /opt/apache-zookeeper-3.7.0-bin/conf/zoo_sample.cfg /opt/apache-zookeeper-3.7.0-bin/conf/zoo.cfg
編輯zoo.cfg
文件:
nano /opt/apache-zookeeper-3.7.0-bin/conf/zoo.cfg
在zoo.cfg
文件中添加以下內容:
tickTime=2000
dataDir=/var/lib/zookeeper/data
dataLogDir=/var/log/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
將node1
, node2
, node3
替換為實際的節點主機名或IP地址。
在每個節點的數據目錄中創建myid
文件,并寫入對應的服務器ID:
echo "1" | sudo tee /var/lib/zookeeper/data/myid # 在node1上
echo "2" | sudo tee /var/lib/zookeeper/data/myid # 在node2上
echo "3" | sudo tee /var/lib/zookeeper/data/myid # 在node3上
在每個節點上啟動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的端口(默認2181, 2888, 3888)通信。
sudo ufw allow 2181/tcp
sudo ufw allow 2888/tcp
sudo ufw allow 3888/tcp
在任意一個節點上執行以下命令,查看集群狀態:
/opt/apache-zookeeper-3.7.0-bin/bin/zkServer.sh status
你應該能看到所有節點的狀態都是leader
或follower
。
通過以上步驟,你就可以在Ubuntu上成功部署一個Zookeeper集群。