温馨提示×

centos怎么升级zookeeper版本

小樊
40
2026-10-09 08:18:14
栏目: 智能运维

在 CentOS 上升级 ZooKeeper 版本,一般步骤如下(以二进制包方式安装为例,最常见):


一、升级前准备

1. 查看当前版本

echo stat | nc 127.0.0.1 2181
# 或
zkServer.sh version

2. 查看当前安装路径

ps -ef | grep zookeeper
which zkServer.sh

通常目录类似:

/opt/zookeeper
/usr/local/zookeeper

3. 备份重要数据(非常重要)

cp -r /opt/zookeeper /opt/zookeeper_bak
cp -r /data/zookeeper /data/zookeeper_bak

/data/zookeeper 是 dataDir,以你 zoo.cfg 为准

4. 查看配置文件

cat /opt/zookeeper/conf/zoo.cfg

二、下载新版本 ZooKeeper

以 3.9.2 为例(可换成你需要的版本):

cd /opt
wget https://downloads.apache.org/zookeeper/zookeeper-3.9.2/apache-zookeeper-3.9.2-bin.tar.gz
tar -zxvf apache-zookeeper-3.9.2-bin.tar.gz
mv apache-zookeeper-3.9.2-bin zookeeper-new

⚠️ 一定要用 -bin 包(已编译)


三、停止旧 ZooKeeper

/opt/zookeeper/bin/zkServer.sh stop

确认已停止:

ps -ef | grep zookeeper

四、替换 ZooKeeper(推荐方式)

方式 1:软链接方式(推荐)

mv /opt/zookeeper /opt/zookeeper-old
ln -s /opt/zookeeper-new /opt/zookeeper

好处:回滚方便

rm /opt/zookeeper
ln -s /opt/zookeeper-old /opt/zookeeper

方式 2:直接覆盖(不推荐)

只复制 bin、lib:

cp -r zookeeper-new/bin /opt/zookeeper/
cp -r zookeeper-new/lib /opt/zookeeper/

五、配置文件兼容处理

1. 保留原配置

cp /opt/zookeeper-old/conf/zoo.cfg /opt/zookeeper/conf/

2. 检查配置兼容性

重点看:

  • dataDir
  • dataLogDir
  • tickTime
  • initLimit
  • syncLimit

大版本升级(如 3.4 → 3.8)建议看官方升级文档


六、启动新版本

/opt/zookeeper/bin/zkServer.sh start

查看日志:

tail -f /opt/zookeeper/logs/zookeeper.log

验证版本:

echo stat | nc 127.0.0.1 2181

七、集群升级(重要)

如果是 ZooKeeper 集群:

  1. 逐台升级(滚动升级)
  2. 先升级 Follower
  3. 最后升级 Leader
  4. 每升级一台,等集群稳定再继续

八、常见问题

1. 启动报 Java 版本错误

ZooKeeper 3.8+ 需要 JDK 8+

java -version

2. 数据不兼容

不要手动删除 version-2 目录


九、总结步骤(速查)

# 停止
zkServer.sh stop

# 备份
cp -r zookeeper zookeeper_bak

# 下载解压
tar -zxvf apache-zookeeper-x.x.x-bin.tar.gz

# 替换
mv zookeeper zookeeper-old
ln -s zookeeper-new zookeeper

# 启动
zkServer.sh start

如果你能提供:

  • 当前 ZooKeeper 版本
  • 是否集群
  • CentOS 版本

我可以给你 更精确的升级方案(包括 systemd 方式)。

0 踩