CentOS下Zookeeper版本升级注意事项
升级前必须对ZooKeeper的数据目录(默认/var/lib/zookeeper)和配置文件(默认/etc/zookeeper/conf/zoo.cfg)进行完整备份。可使用以下命令:
systemctl stop zookeeper # 停止服务
cp -r /var/lib/zookeeper /var/lib/zookeeper_backup # 备份数据
cp -r /etc/zookeeper/conf /etc/zookeeper_conf_backup # 备份配置
备份完成后重启服务,确保备份数据有效。
java -version查看)。autopurge.snapRetainCount、autopurge.purgeInterval等),需对比新旧版本的zoo.cfg文档,修改对应配置。dataDir(数据目录)、dataLogDir(日志目录)需指向有效存储位置,且目录权限设置为zookeeper用户所有(chown -R zookeeper:zookeeper /var/lib/zookeeper)。若为集群部署,需逐个节点升级(而非同时停止所有节点),步骤如下:
systemctl stop zookeeper);systemctl start zookeeper)并检查状态(systemctl status zookeeper);zkCli.sh执行ls /命令无报错)后,再升级下一个节点。/etc/profile或/etc/zookeeper/conf/environment文件,确保ZOOKEEPER_HOME指向新版本安装目录(如export ZOOKEEPER_HOME=/opt/apache-zookeeper-3.8.0),并添加$ZOOKEEPER_HOME/bin到PATH中。zookeeper.service文件(通常位于/usr/lib/systemd/system/),更新Environment变量和ExecStart路径(指向新版本的zkServer.sh),然后执行以下命令重载服务:systemctl daemon-reload
systemctl start zookeeper
systemctl status zookeeper # 检查状态
zkCli.sh连接服务器,执行version命令确认版本号,ls /命令检查数据完整性。zkStress)验证升级后服务的吞吐量、延迟是否符合预期。/var/log/zookeeper/zookeeper.out或journalctl -u zookeeper日志,确认无报错信息。znode数量、Watch数量、请求延迟等指标,及时发现异常。systemctl stop zookeeper
rm -rf /var/lib/zookeeper # 删除新版本数据
cp -r /var/lib/zookeeper_backup /var/lib/zookeeper # 恢复备份
systemctl start zookeeper