溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux系統如何部署zookeeper集群

發布時間:2022-01-25 10:13:46 來源:億速云 閱讀:174 作者:小新 欄目:開發技術
# Linux系統如何部署Zookeeper集群

## 一、Zookeeper簡介

Apache Zookeeper是一個開源的分布式協調服務,由雅虎創建并貢獻給Apache基金會。它為分布式應用提供一致性服務,包括:

- 配置維護
- 域名服務
- 分布式同步
- 組服務等

Zookeeper通過**ZAB協議(Zookeeper Atomic Broadcast)**保證分布式一致性,典型應用場景包括:
- Hadoop/YARN高可用
- Kafka集群協調
- Dubbo服務注冊中心

## 二、環境準備

### 1. 服務器規劃

建議至少3個節點組成集群(滿足奇數投票機制):

| 主機名   | IP地址       | 角色          |
|----------|-------------|---------------|
| zk-node1 | 192.168.1.10| Leader/Follower|
| zk-node2 | 192.168.1.11| Leader/Follower|
| zk-node3 | 192.168.1.12| Leader/Follower|

### 2. 系統要求

- 操作系統:CentOS 7+/Ubuntu 18.04+
- Java環境:JDK 8+
- 內存:≥2GB(生產環境建議4GB+)
- 磁盤:≥10GB(建議SSD)

### 3. 基礎配置

```bash
# 所有節點執行
sudo timedatectl set-timezone Asia/Shanghai
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo setenforce 0
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

# 配置hosts
echo "192.168.1.10 zk-node1
192.168.1.11 zk-node2
192.168.1.12 zk-node3" | sudo tee -a /etc/hosts

三、JDK安裝

# CentOS
sudo yum install -y java-1.8.0-openjdk-devel

# Ubuntu
sudo apt install -y openjdk-8-jdk

# 驗證安裝
java -version

四、Zookeeper集群部署

1. 下載安裝包

wget https://archive.apache.org/dist/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz
tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz
sudo mv apache-zookeeper-3.6.3-bin /opt/zookeeper

2. 創建數據目錄

sudo mkdir -p /data/zookeeper/{data,logs}
sudo chown -R $(whoami):$(whoami) /data/zookeeper

3. 配置文件修改

復制樣例配置并修改zoo.cfg

cd /opt/zookeeper/conf
cp zoo_sample.cfg zoo.cfg

修改配置內容:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/data
dataLogDir=/data/zookeeper/logs
clientPort=2181
maxClientCnxns=60
autopurge.snapRetainCount=3
autopurge.purgeInterval=1

# 集群配置
server.1=zk-node1:2888:3888
server.2=zk-node2:2888:3888
server.3=zk-node3:2888:3888

參數說明: - tickTime:基本時間單元(毫秒) - initLimit:Follower初始連接超時(tickTime倍數) - syncLimit:Follower同步超時 - 2888:Leader選舉端口 - 3888:集群通信端口

4. 創建myid文件

在每個節點的dataDir目錄創建myid文件,內容為對應的server編號:

# zk-node1執行
echo 1 > /data/zookeeper/data/myid

# zk-node2執行
echo 2 > /data/zookeeper/data/myid

# zk-node3執行
echo 3 > /data/zookeeper/data/myid

5. 配置環境變量

echo 'export ZOOKEEPER_HOME=/opt/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin' | sudo tee -a /etc/profile
source /etc/profile

五、啟動與驗證

1. 啟動集群

# 所有節點執行
/opt/zookeeper/bin/zkServer.sh start

# 查看狀態
zkServer.sh status

正常輸出示例:

ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Mode: leader  # 或 follower

2. 基礎測試

# 連接客戶端
zkCli.sh -server zk-node1:2181

# 執行測試命令
[zk: zk-node1:2181(CONNECTED) 0] create /test "hello"
[zk: zk-node1:2181(CONNECTED) 1] get /test

3. 集群健康檢查

echo stat | nc 127.0.0.1 2181 | grep Mode
echo mntr | nc 127.0.0.1 2181 | grep zk_server_state

六、常見問題解決

1. 無法選舉Leader

  • 檢查防火墻狀態
  • 驗證3888端口連通性:
    
    telnet zk-node1 3888
    
  • 檢查myid文件是否匹配配置

2. 數據目錄權限問題

sudo chown -R zookeeper:zookeeper /data/zookeeper

3. 內存溢出調整

修改/opt/zookeeper/bin/zkEnv.sh

export JVMFLAGS="-Xms2048m -Xmx2048m"

七、生產環境優化建議

  1. 監控配置

    • 使用Prometheus + Grafana監控
    • 關鍵指標:znode數量、watch數量、延遲時間
  2. 日志管理

    # 修改log4j.properties
    zookeeper.log.dir=/data/zookeeper/logs
    log4j.appender.ROLLINGFILE.MaxFileSize=100MB
    
  3. JVM調優

    # 建議配置
    -Xms4G -Xmx4G -XX:+UseG1GC -XX:MaxGCPauseMillis=200
    
  4. 定期清理

    # 添加crontab任務
    0 3 * * * /opt/zookeeper/bin/zkCleanup.sh -n 10
    

八、集群維護命令

命令 作用
zkServer.sh start 啟動服務
zkServer.sh stop 停止服務
zkServer.sh restart 重啟服務
zkServer.sh status 查看節點角色
zkCli.sh 進入命令行客戶端

通過以上步驟,您已成功部署Zookeeper集群。建議在正式環境前進行充分的壓力測試,并根據實際業務需求調整配置參數。 “`

這篇文章包含了: 1. 環境準備與規劃 2. 詳細的安裝配置步驟 3. 集群驗證方法 4. 常見問題解決方案 5. 生產環境優化建議 6. 常用維護命令

總字數約1650字,采用Markdown格式,包含代碼塊、表格等元素便于閱讀??筛鶕嶋H環境調整IP地址、版本號等參數。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女