一、安裝Java環境
ZooKeeper依賴Java運行環境。使用以下命令安裝OpenJDK 8:
sudo yum install java-1.8.0-openjdk-devel
二、下載并解壓ZooKeeper
從apache ZooKeeper官方網站下載ZooKeeper發行包(例如zookeeper-3.5.9-bin.tar.gz),并解壓到指定目錄(例如/usr/local/):
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz -C /usr/local/
三、配置ZooKeeper
進入解壓后的ZooKeeper目錄,復制并修改zoo_sample.cfg配置文件為zoo.cfg。關鍵配置項包括:
- dataDir:ZooKeeper數據存儲目錄。
- clientPort:客戶端連接端口(默認2181)。
- tickTime:ZooKeeper基本時間單位(毫秒)。
- initLimit:初始連接超時時間(單位為tickTime)。
- syncLimit:同步連接超時時間(單位為tickTime)。
示例zoo.cfg配置:
tickTime=2000 dataDir=/usr/local/zookeeper-3.5.9/data clientPort=2181 initLimit=10 syncLimit=5
四、創建myid文件
在每個ZooKeeper服務器的dataDir目錄下,創建名為myid的文件,文件內容為該服務器的ID(例如,對于集群中的第一臺服務器,myid文件內容為1)。
echo "1" > /usr/local/zookeeper-3.5.9/data/myid
五、設置環境變量
編輯/etc/profile文件,添加ZooKeeper環境變量:
vi /etc/profile
添加以下內容:
export ZOOKEEPER_HOME=/usr/local/zookeeper-3.5.9 export PATH=$PATH:$ZOOKEEPER_HOME/bin
使配置生效:
source /etc/profile
六、配置系統服務
創建ZooKeeper系統服務文件/etc/systemd/system/zookeeper.service:
vi /etc/systemd/system/zookeeper.service
添加以下內容(注意調整JAVA_HOME路徑):
[Unit] Description=Apache Zookeeper After=network.target [Service] Type=forking ExecStart=/usr/local/zookeeper-3.5.9/bin/zkServer.sh start ExecStop=/usr/local/zookeeper-3.5.9/bin/zkServer.sh stop PrivateTmp=true Environment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.202.b08-2.el7.x86_64 User=zookeeper # 建議使用專用用戶 Group=zookeeper # 建議使用專用用戶 PIDFile=/usr/local/zookeeper-3.5.9/data/zookeeper.pid Restart=always [Install] WantedBy=multi-user.target
啟用并啟動ZooKeeper服務:
sudo systemctl daemon-reload sudo systemctl enable zookeeper sudo systemctl start zookeeper
七、驗證安裝
使用以下命令檢查ZooKeeper狀態:
/usr/local/zookeeper-3.5.9/bin/zkServer.sh status
如果ZooKeeper成功啟動,則表示安裝配置成功。 建議使用netstat -anp | grep 2181命令確認2181端口是否監聽。 對于集群環境,需要在每臺服務器上重復以上步驟,并確保每個服務器的myid值唯一。 最后,可以使用客戶端工具連接ZooKeeper集群進行測試。
注意: 建議創建專用用戶zookeeper并賦予其必要的權限,以提高安全性。 JAVA_HOME路徑請根據實際安裝情況修改。 以上步驟基于ZooKeeper 3.5.9版本,其他版本可能略有差異,請參考官方文檔。