Debian系统升级Zookeeper版本的步骤
升级前必须执行以下关键操作,避免数据丢失或服务中断:
/var/lib/zookeeper)和配置文件(默认/etc/zookeeper/conf/zoo.cfg),建议添加时间戳以便区分。sudo cp -r /var/lib/zookeeper /var/lib/zookeeper-backup-$(date +%Y%m%d%H%M%S)
sudo cp /etc/zookeeper/conf/zoo.cfg /etc/zookeeper/conf/zoo.cfg-backup
tar.gz格式)。wget https://archive.apache.org/dist/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
升级前需停止服务,防止数据损坏:
sudo systemctl stop zookeeper
若旧版本是通过包管理器(如APT)安装的,可选择移除旧版本(保留配置和数据):
sudo apt remove --purge zookeeper # 仅移除软件包,保留配置和数据
# 或手动删除旧安装目录(若手动安装)
sudo rm -rf /opt/zookeeper-old # 假设旧版本安装在/opt/zookeeper-old
/opt)。sudo tar -xzf apache-zookeeper-3.7.0-bin.tar.gz -C /opt
sudo mv /opt/apache-zookeeper-3.7.0-bin /opt/zookeeper # 重命名为标准目录名
sudo cp /etc/zookeeper/conf/zoo.cfg-backup /etc/zookeeper/conf/zoo.cfg
sudo cp -r /etc/zookeeper/conf/* /opt/zookeeper/conf/ # 同步其他配置文件(如log4j.properties)
sudo rm -rf /var/lib/zookeeper # 删除旧链接
sudo ln -s /opt/zookeeper/data /var/lib/zookeeper # 创建新链接(指向新版本的数据目录)
启动Zookeeper并检查状态:
sudo systemctl start zookeeper
sudo systemctl status zookeeper # 确认服务状态为“active (running)”
通过以下命令验证Zookeeper是否成功升级:
stat命令,查看版本信息。echo stat | nc localhost 2181 # 返回结果中包含“Zookeeper version”字段
ps aux | grep zookeeper # 确认进程存在且无报错
确认升级成功后,删除备份文件和临时文件以释放空间:
sudo rm -rf /var/lib/zookeeper-backup-$(date +%Y%m%d%H%M%S)
sudo rm -rf /opt/apache-zookeeper-3.7.0-bin.tar.gz
若为Zookeeper集群,需采用滚动升级方式(逐个节点升级),避免集群不可用:
echo stat | nc localhost 2181查看Mode为follower或leader)。echo mntr | nc localhost 2181查看节点同步情况)。