在 Linux 上升级 ZooKeeper(ZK)通常不需要删除数据,核心原则是:备份 → 停止服务 → 替换二进制 → 启动校验。下面按最常用、最安全的方式说明。
zkServer.sh version
# 或
echo stat | nc 127.0.0.1 2181 | grep version
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 安装目录zkServer.sh stop
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
mv zookeeper zookeeper_old
mv apache-zookeeper-3.9.2-bin zookeeper
cp zookeeper_old/conf/zoo.cfg zookeeper/conf/
cp zookeeper_old/conf/log4j.properties zookeeper/conf/
zkServer.sh start
zkServer.sh status
原则:一次只升级一个节点
zkServer.sh stop
# 替换二进制
zkServer.sh start
# 确认状态
zkServer.sh status
✅ ZooKeeper 支持 混合版本短暂共存
✅ 升级期间集群仍可对外提供服务
version-2 目录| ZooKeeper 版本 | JDK |
|---|---|
| 3.5+ | JDK 8+ |
| 3.8+ | JDK 11 推荐 |
myid 是否存在zoo.cfg 是否完整zookeeper.out3.4.14 → 3.5.10 → 3.6.4 → 3.8.4 → 3.9.2
如果你愿意,可以告诉我:
我可以给你精确升级命令。