下面以 Linux 环境下 ZooKeeper 升级 为例,给你一个通用、安全的升级步骤(以 3.4.x → 3.5.x / 3.6.x / 3.7.x 为例,其他小版本类似)。
zkServer.sh version
# 或
echo stat | nc 127.0.0.1 2181 | head
集群必须滚动升级,不能全部同时停
cp -r /data/zookeeper /data/zookeeper_bak_$(date +%F)
cp -r $ZK_HOME/conf $ZK_HOME/conf_bak_$(date +%F)
不同大版本可能有 不兼容变更:
autopurge)官方文档: https://zookeeper.apache.org/doc/
cd /opt
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz
tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz
mv apache-zookeeper-3.7.1-bin zookeeper-3.7.1
cp zookeeper旧版本/conf/zoo.cfg zookeeper-3.7.1/conf/
cp zookeeper旧版本/conf/log4j.properties zookeeper-3.7.1/conf/
常见需要关注的:
dataDir=
dataLogDir=
clientPort=
server.1=
server.2=
server.3=
如不需要:
admin.enableServer=false
zkServer.sh stop
ln -sfn /opt/zookeeper-3.7.1 /opt/zookeeper
zkServer.sh start
echo stat | nc 127.0.0.1 2181
zkServer.sh status
必须等节点完全加入集群再升级下一个
zkServer.sh stop
# 替换目录
zkServer.sh start
zkCli.sh -server 127.0.0.1:2181
ls /
get /test
检查:
version-2zkServer.sh stop
ln -sfn /opt/zookeeper-旧版本 /opt/zookeeper
zkServer.sh start
如果你愿意,可以告诉我:
我可以给你精确升级命令。