# Zookeeper的安裝方法
## 一、Zookeeper簡介
Apache Zookeeper是一個開源的分布式協調服務,為分布式應用提供一致性服務,包括配置維護、域名服務、分布式同步和組服務等核心功能。其典型應用場景包括:
- 分布式鎖服務
- 集群選舉管理
- 配置中心
- 注冊中心(如Dubbo)
## 二、安裝前準備
### 1. 系統要求
- 支持Linux/Unix/Windows系統(生產環境推薦Linux)
- Java運行環境(JDK 1.8+)
- 磁盤空間 ≥ 1GB(建議SSD)
- 內存 ≥ 2GB(根據節點數量調整)
### 2. 下載安裝包
官方下載地址:
https://zookeeper.apache.org/releases.html
推薦版本選擇:
- 生產環境:3.6.x及以上穩定版
- 學習環境:3.4.x(兼容性較好)
```bash
# 示例下載命令
wget https://downloads.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz
tar -zxvf apache-zookeeper-3.8.0-bin.tar.gz
mv apache-zookeeper-3.8.0-bin /usr/local/zookeeper
編輯/etc/profile
文件:
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
使配置生效:
source /etc/profile
復制模板配置文件:
cd /usr/local/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
主要配置項說明:
tickTime=2000
dataDir=/var/lib/zookeeper/data
dataLogDir=/var/lib/zookeeper/logs
clientPort=2181
啟動服務:
zkServer.sh start
檢查狀態:
zkServer.sh status
# 單機模式顯示"standalone"
連接客戶端測試:
zkCli.sh -server 127.0.0.1:2181
節點 | IP地址 | 服務端口 | 選舉端口 | 數據同步端口 |
---|---|---|---|---|
node1 | 192.168.1.1 | 2181 | 2888 | 3888 |
node2 | 192.168.1.2 | 2181 | 2888 | 3888 |
node3 | 192.168.1.3 | 2181 | 2888 | 3888 |
每個節點的zoo.cfg
需添加:
server.1=192.168.1.1:2888:3888
server.2=192.168.1.2:2888:3888
server.3=192.168.1.3:2888:3888
在每個節點的dataDir目錄下:
# node1執行
echo "1" > /var/lib/zookeeper/data/myid
# node2執行
echo "2" > /var/lib/zookeeper/data/myid
# node3執行
echo "3" > /var/lib/zookeeper/data/myid
按順序啟動所有節點:
zkServer.sh start
驗證集群狀態:
zkServer.sh status
# 應顯示leader或follower狀態
錯誤現象:
Address already in use
解決方案:
- 修改clientPort
參數
- 檢查并殺死占用進程:netstat -tunlp | grep 2181
可能原因: - 防火墻未開放選舉端口(2888/3888) - myid文件配置錯誤 - 節點間網絡不通
建議解決方案:
chown -R zookeeper:zookeeper /var/lib/zookeeper
# 啟動
zkServer.sh start
# 停止
zkServer.sh stop
# 重啟
zkServer.sh restart
# 查看節點
ls /
# 創建節點
create /test "data"
# 獲取節點數據
get /test
# 在zoo.cfg中添加
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
# 配置自動清理(zoo.cfg)
autopurge.snapRetainCount=5
autopurge.purgeInterval=24
”`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。