Ubuntu系统升级Zookeeper版本指南
升级前必须备份Zookeeper的数据目录(默认/var/lib/zookeeper)和配置文件(默认/etc/zookeeper/conf/zoo.cfg),防止升级过程中数据丢失。
执行命令:
sudo cp -R /var/lib/zookeeper /var/lib/zookeeper-backup # 备份数据目录
sudo cp -R /etc/zookeeper /etc/zookeeper-backup # 备份配置文件
java -version
若版本不符,需先升级Java:sudo apt update && sudo apt install openjdk-11-jdk # 示例:安装OpenJDK 11
前往Apache ZooKeeper官方网站(https://zookeeper.apache.org/releases.html)下载所需版本的二进制包(推荐,无需编译)。例如,下载3.7.0版本:
wget https://downloads.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
若之前通过apt安装,可先卸载旧版本以避免冲突:
sudo apt remove --purge zookeeper zookeeperd # 卸载zookeeper及服务
sudo apt autoremove # 清理无用依赖
将下载的二进制包解压到/opt目录(常用软件安装路径):
sudo tar -xzf apache-zookeeper-3.7.0-bin.tar.gz -C /opt
为简化后续命令,可创建指向新版本的符号链接:
sudo ln -s /opt/apache-zookeeper-3.7.0-bin /opt/zookeeper
编辑/etc/environment文件,添加ZooKeeper环境变量:
ZOOKEEPER_HOME="/opt/zookeeper"
PATH="$ZOOKEEPER_HOME/bin:$PATH"
保存后生效:
source /etc/environment
将旧版本数据目录复制到新版本的data目录下:
sudo mkdir -p /opt/zookeeper/data # 新版本默认data目录
sudo cp -R /var/lib/zookeeper-backup/* /opt/zookeeper/data/ # 复制旧数据
检查新版本conf/zoo.cfg是否有新增配置项(如autopurge.snapRetainCount、autopurge.purgeInterval等),若有则修改/etc/zookeeper/conf/zoo.cfg(需保持dataDir路径一致):
sudo nano /etc/zookeeper/conf/zoo.cfg
sudo systemctl start zookeeper
sudo systemctl status zookeeper
若显示“active (running)”,则表示服务启动成功。
通过zkCli.sh命令行工具连接Zookeeper,查看版本信息:
/opt/zookeeper/bin/zkCli.sh -server localhost:2181
连接后输入stat命令,输出中应包含新版本号(如Znode version: 3.7.0)。
若启动时报“Permission denied”错误,需确保Zookeeper数据目录权限正确:
sudo chown -R zookeeper:zookeeper /opt/zookeeper/data
sudo chown -R zookeeper:zookeeper /var/lib/zookeeper
若端口2181被占用,可通过以下命令查找并终止占用进程:
sudo lsof -i :2181
sudo kill -9 <PID> # 替换为实际进程ID
若启动失败,查看Zookeeper日志定位问题(默认在dataDir下的zookeeper.out文件):
tail -n 50 /opt/zookeeper/data/zookeeper.out
通过以上步骤,即可完成Ubuntu系统上Zookeeper版本的升级。升级后建议通过zkCli.sh执行基本操作(如create、get)验证功能正常。