Debian 上 Zookeeper 版本升级操作指南
一 升级前准备
java -version 确认。/etc/zookeeper/(或 /opt/apache-zookeeper-*/conf/)/var/lib/zookeeper/(快照与事务日志)/etc/systemd/system/zookeeper.service(如使用 systemd)二 升级步骤
sudo cp -a /etc/zookeeper /etc/zookeeper.bak-$(date +%F)sudo cp -a /var/lib/zookeeper /var/lib/zookeeper.bak-$(date +%F)sudo systemctl stop zookeepersudo apt updatesudo apt install --only-upgrade zookeeper zookeeperdsudo systemctl start zookeepersudo systemctl status zookeeperecho stat | nc 127.0.0.1 2181 或 sudo systemctl is-active zookeepersudo apt install zookeeper=旧版本号 zookeeperd=旧版本号sudo cp -a /etc/zookeeper.bak-*/ /etc/zookeeper && sudo cp -a /var/lib/zookeeper.bak-*/ /var/lib/zookeepersudo systemctl restart zookeeperwget https://downloads.apache.org/zookeeper/zookeeper-x.y.z/apache-zookeeper-x.y.z-bin.tar.gzsudo tar -xzf apache-zookeeper-x.y.z-bin.tar.gz -C /optsudo cp -a /etc/zookeeper/conf /opt/apache-zookeeper-x.y.z-bin/conf.baksudo cp -a /opt/apache-zookeeper-x.y.z-bin/conf/* /etc/zookeeper/conf/(以现有配置为主,必要时合并差异)dataDir、dataLogDir、server.X 列表等server.X 的 X 一致(位于 dataDir/myid)sudo systemctl stop zookeepersudo systemctl disable --now zookeeper 后,更新单元文件中的 ExecStart 指向新路径,再 sudo systemctl daemon-reload && sudo systemctl enable --now zookeepersudo ln -sfn /opt/apache-zookeeper-x.y.z-bin /opt/zookeeper && sudo systemctl restart zookeepersudo systemctl status zookeeperecho stat | nc 127.0.0.1 2181 或 sudo systemctl is-active zookeepersudo ln -sfn /opt/apache-zookeeper-旧版本 /opt/zookeeper && sudo systemctl restart zookeeperzkServer.sh status 或 echo stat | nc 确认角色为 follower/leader 且集群已建立,再继续下一台。三 升级后验证与常见问题
sudo systemctl is-active zookeeper 应为 activeecho stat | nc 127.0.0.1 2181 或 zkServer.sh status 应显示 Mode: leader/followerzkCli.sh -server 127.0.0.1:2181 ls / 查看关键 ZNode 是否存在getAcl /sudo journalctl -u zookeeper -f 或 tail -f /var/log/zookeeper/zookeeper.outsudo ufw allow 2181,2888,3888/tcpdataDir/dataLogDir 权限与所有者、myid 与 server.X 一致、JAVA_HOME/Java 版本server.X 列表、各节点 2888/3888 连通性、防火墙策略四 回滚与最小化停机建议