温馨提示×

centos如何集群部署zookeeper

小樊
39
2026-10-09 08:16:15
栏目: 智能运维

下面给你一份**在 CentOS 上集群部署 ZooKeeper(3 节点示例)**的完整操作指南,适用于 CentOS 7 / 8,ZooKeeper 3.6+ 版本通用。


一、环境准备

1. 服务器规划

假设有 3 台 CentOS 服务器:

主机名 IP
zk1 192.168.1.11
zk2 192.168.1.12
zk3 192.168.1.13

建议关闭防火墙或放行 2181、2888、3888 端口

systemctl stop firewalld
systemctl disable firewalld

或放行端口:

firewall-cmd --add-port=2181/tcp --permanent
firewall-cmd --add-port=2888/tcp --permanent
firewall-cmd --add-port=3888/tcp --permanent
firewall-cmd --reload

2. 安装 JDK(ZooKeeper 依赖)

yum install -y java-1.8.0-openjdk
java -version

3. 配置 hosts(所有节点)

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

二、安装 ZooKeeper(所有节点)

1. 下载并解压

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

2. 创建数据目录

mkdir -p /data/zookeeper

三、配置 ZooKeeper 集群

1. 修改配置文件

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

2. 配置 myid(重要)

在 每台机器 上执行:

# zk1
echo 1 > /data/zookeeper/myid

# zk2
echo 2 > /data/zookeeper/myid

# zk3
echo 3 > /data/zookeeper/myid

四、启动 ZooKeeper 集群

1. 启动(所有节点)

/opt/zookeeper/bin/zkServer.sh start

2. 查看状态

/opt/zookeeper/bin/zkServer.sh status

输出示例:

Mode: leader

或

Mode: follower

五、验证集群

/opt/zookeeper/bin/zkCli.sh -server zk1:2181

执行:

ls /

六、配置系统服务(可选)

1. 创建 systemd 服务

cat > /etc/systemd/system/zookeeper.service <<EOF
[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-abnormal

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

七、常见问题

1. 启动后状态异常

  • 检查 myid 是否匹配
  • 检查 2888 / 3888 端口是否通
  • 查看日志:
tail -f /opt/zookeeper/bin/../logs/zookeeper-*.out

2. 集群必须 ≥ 2 台存活


如果你需要:

  • Docker 部署
  • Kubernetes 部署
  • ZooKeeper + Kafka 集群
  • 生产环境调优参数

可以继续问我。

0 踩