温馨提示×

linux zookeeper如何升级版本

小樊
38
2026-09-19 15:06:50
栏目: 智能运维

在 Linux 上升级 ZooKeeper(ZK)通常不需要删除数据,核心原则是:备份 → 停止服务 → 替换二进制 → 启动校验。下面按最常用、最安全的方式说明。


一、升级前准备

1. 查看当前版本

zkServer.sh version
# 或
echo stat | nc 127.0.0.1 2181 | grep version

2. 备份(非常重要)

cp -r /data/zookeeper /data/zookeeper_bak_$(date +%F)
cp -r /path/to/zookeeper/conf /path/to/zookeeper_conf_bak
  • /data/zookeeper:dataDir
  • /path/to/zookeeper:ZK 安装目录

二、单节点升级(最简单)

1. 停止 ZooKeeper

zkServer.sh stop

2. 下载新版本

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

3. 替换安装目录(推荐方式)

mv zookeeper zookeeper_old
mv apache-zookeeper-3.9.2-bin zookeeper

4. 复制配置文件

cp zookeeper_old/conf/zoo.cfg zookeeper/conf/
cp zookeeper_old/conf/log4j.properties zookeeper/conf/

5. 启动

zkServer.sh start
zkServer.sh status

三、集群滚动升级(推荐生产环境)

原则:一次只升级一个节点

升级顺序

  1. 升级 Follower
  2. 最后升级 Leader

步骤(每个节点)

zkServer.sh stop
# 替换二进制
zkServer.sh start
# 确认状态
zkServer.sh status

✅ ZooKeeper 支持 混合版本短暂共存
✅ 升级期间集群仍可对外提供服务


四、注意事项(非常关键)

1. 版本兼容性

  • 3.4 → 3.5+:不兼容,需谨慎
  • 3.5 → 3.6 / 3.7 / 3.8:平滑升级
  • 大版本升级前查官方 release notes

2. dataDir 不要动

  • 不要删除 version-2 目录
  • 不要格式化数据

3. JDK 要求

ZooKeeper 版本 JDK
3.5+ JDK 8+
3.8+ JDK 11 推荐

五、常见问题

Q1:升级后启动失败?

  • 检查 myid 是否存在
  • 检查 zoo.cfg 是否完整
  • 查看 zookeeper.out

Q2:是否需要重启客户端?

  • 不需要,客户端自动重连

六、推荐升级路径示例

3.4.14 → 3.5.10 → 3.6.4 → 3.8.4 → 3.9.2

如果你愿意,可以告诉我:

  • ✅ 当前 ZK 版本
  • ✅ 单节点还是集群
  • ✅ 用的包管理方式(tar / yum / docker)

我可以给你精确升级命令

0