注意事项
- 本指南记录了从 3.4.8 更新到 3.7.0 ,其他版本仅供参考。
- 更新期间,持续观察 kafka 消费情况,观察 kafka-manager 是否正常。
- 每次更新一个 zk 服务。
- 每个 zk 服务按照如下流程操作。
检查当前 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 服务
- 如果使用 supervisor 管理 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