温馨提示×

centos怎么集群部署zookeeper

小樊
42
2026-10-06 08:52:38
栏目: 智能运维

下面以 CentOS 7/8 为例,说明 ZooKeeper 集群(3 节点) 的部署步骤。这是生产环境最常见的最小集群规模(奇数节点)。


一、环境准备

1. 服务器规划

假设 3 台 CentOS 服务器:

主机名 IP
zk1 192.168.1.11
zk2 192.168.1.12
zk3 192.168.1.13

建议配置 hosts(三台都做):

cat >> /etc/hosts <<EOF
192.168.1.11 zk1
192.168.1.12 zk2
192.168.1.13 zk3
EOF

2. 基础环境(三台都执行)

# 关闭防火墙(或放行 2181/2888/3888)
systemctl stop firewalld
systemctl disable firewalld

# 安装 JDK(ZooKeeper 依赖 Java)
yum install -y java-1.8.0-openjdk

java -version

二、下载并安装 ZooKeeper

cd /opt
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz

tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz
mv apache-zookeeper-3.7.1-bin zookeeper

三、配置 ZooKeeper 集群

1. 创建数据目录

mkdir -p /data/zookeeper

2. 修改配置文件

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

zoo.cfg 关键配置:

tickTime=2000
initLimit=10
syncLimit=5

dataDir=/data/zookeeper
clientPort=2181

# 集群配置
server.1=zk1:2888:3888
server.2=zk2:2888:3888
server.3=zk3:2888:3888

3. 配置 myid(非常重要)

每台机器写入不同 ID:

zk1

echo 1 > /data/zookeeper/myid

zk2

echo 2 > /data/zookeeper/myid

zk3

echo 3 > /data/zookeeper/myid

四、启动 ZooKeeper 集群

三台分别执行:

/opt/zookeeper/bin/zkServer.sh start

查看状态:

/opt/zookeeper/bin/zkServer.sh status

正常应看到:

  • 1 个 leader
  • 2 个 follower

五、验证集群

/opt/zookeeper/bin/zkCli.sh -server zk1:2181
create /test hello
get /test

在 zk2 / zk3 上也能 get /test,说明集群同步正常。


六、(可选)systemd 管理

创建 /etc/systemd/system/zookeeper.service:

[Unit]
Description=ZooKeeper
After=network.target

[Service]
Type=forking
ExecStart=/opt/zookeeper/bin/zkServer.sh start
ExecStop=/opt/zookeeper/bin/zkServer.sh stop
Restart=on-failure

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable zookeeper

七、常见问题

  • 端口不通:检查 2181 / 2888 / 3888
  • myid 错误:会导致无法选主
  • 集群起不来:看 /opt/zookeeper/logs

如果你需要:

  • Docker 部署 ZooKeeper 集群
  • Kubernetes 部署
  • ZooKeeper + Kafka 集群

可以继续问我。

0 踩