Zookeeper 滚动更新

2022/06/14

注意事项

检查当前 zk 实例

**$ echo srvr | nc ****${ZK_HOST}**** 2181**
`Zookeeper version: ``3.4.8``--1, built on 02/06/2016 03:18 GMT`
`Latency min/avg/max: 0/0/226`
`Received: 21639912`
`Sent: 21652907`
`Connections: 5`
`Outstanding: 0`
`Zxid: 0x30090e93d`
`Mode: follower`
`Node count: 4169`

**# ls -al /opt**
total 8
drwxr-xr-x.  5 root      root       117 Sep 23  2019 .
dr-xr-xr-x. 18 root      root      4096 Jul 15  2021 ..
lrwxrwxrwx   1 root      root        17 Sep 23  2019 jdk -> /opt/jdk1.8.0_181
drwxr-xr-x   7        10       143  245 Jul  7  2018 jdk1.8.0_181
lrwxrwxrwx   1 root      root        24 Sep 23  2019 kafka -> /opt/kafka_2.11-0.10.2.1
drwxr-xr-x   6 root      root        89 Apr 22  2017 kafka_2.11-0.10.2.1
lrwxrwxrwx   1 root      root        20 Sep 23  2019 zookeeper -> /opt/zookeeper-3.4.8
drwxr-xr-x  10 zookeeper zookeeper 4096 Feb  6  2016 zookeeper-3.4.8

准备 zk 3.7.0 目录

**curl ****https://dlcdn.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz**** -O**
`tar xf apache-zookeeper-3.7.0-bin.tar.gz`

`mv apache-zookeeper-3.7.0-bin` /opt/zookeeper-3.7.0

停止当前 zk 服务

supervisorctl stop zookeeper
cd /opt/zookeeper
`bin/zkServer.sh stop`

再次检查 zk 是否还在运行

`echo srvr | nc ${ZK_HOST} 2181`

没有输出内容,即表示 zk 已经停止。

备份 dataDir 和 dataLogDir

awk '/dataDir/ || /dataLogDir/' /opt/zookeeper/conf/zoo.cfg

将列出的目录备份。

迁移配置文件到新 zk 目录

cp /opt/zookeeper/conf/zoo.cfg /opt/zookeeper-3.7.0/conf/zoo.cfg
cp /opt/zookeeper/conf/log4j.properties /opt/zookeeper-3.7.0/conf/log4j.properties

链接到新的 zk 目录

rm /opt/zookeeper
ln -s /opt/zookeeper-3.7.0 /opt/zookeeper

启动新版 zk 服务

# supervisor 方式启动
supervisorctl start zookeeper

# 一般方式启动
`# cd /opt/zookeeper`
`# bin/zkServer.sh s`tart

参考