Kakfa集群(2.11-0.10.1.0)版本滚动升级方案

 

Kafka集群版本升级(2.11-0.10.1.0)升级(2.11-0.10.2.2)

官网升级说明:

 

一、系统环境
Zookeeper集群:
172.16.2.10
172.16.2.11
172.16.2.12
Kafka集群:
172.16.2.10
172.16.2.11
172.16.2.12

现Kafka版本: 2.11-0.10.1.0,安装目录:/usr/local/kafka
计划升级至版本:2.11-0.10.2.2,安装目录:/usr/local/kafka_2.11-0.10.2.2

二、创建测试topic
1.创建测试topic

/usr/local/kafka/bin/kafka-topics.sh --zookeeper 172.16.2.10:2181,172.16.2.11:2181,172.16.2.12:2181  --create --replication-factor 3  --partitions 2 --topic first

/usr/local/kafka/bin/kafka-topics.sh --zookeeper 172.16.2.10:2181,172.16.2.11:2181,172.16.2.12:2181  --create --replication-factor 2  --partitions 1 --topic second

2.查看测试topic

/usr/local/kafka/bin/kafka-topics.sh --zookeeper 172.16.2.10:2181,172.16.2.11:2181,172.16.2.12:2181 --describe --topic first
Ls /data/kafka/

3.查看当前服务器中的所有topic

/usr/local/kafka/bin/kafka-topics.sh --zookeeper 172.16.2.10:2181,172.16.2.11:2181,172.16.2.12:2181 --list

三、升级步骤
1.安装新版本kafka

tar  -xf  kafka_2.11-0.10.2.2.tgz  -C /usr/local/
cp /usr/local/kafka_2.10-0.10.1.0/config/server.properties  /usr/local/kafka_2.11-0.10.2.2/config/server.properties

2.修改配置
注:修改配置2.11-0.10.2.2(升级版本)的server.properties,添加2行,其他配置保持不变,特别是数据存储目录,cp 2.10-0.10.1.0(旧版本)的配置

cp /usr/local/kafka/config/server.properties /usr/local/kafka_2.11-0.10.2.2/config/server.properties
vim /usr/local/kafka_2.11-0.10.2.2/config/server.properties
inter.broker.protocol.version=0.10.1.0
log.message.format.version=0.10.1.0

3.停止原版本
注:停止原版本的kafka,使用kafka自带stop脚本bin下的kafka-server-stop.sh或者kill掉, 然后启动2.11-0.10.2.2,由于之前配置了环境变量,注意用2.11-0.10.2.2目录下的程序去启动kafka

usr/local/kafka/bin/kafka-server-stop.sh 
ps -ef|grep kafka

4.启动新版本
第一台kafka服务器后台启动

/usr/local/kafka_2.11-0.10.2.2/bin/kafka-server-start.sh -daemon /usr/local/kafka_2.11-0.10.2.2/config/server.properties 
tail -f /usr/local/kafka_2.11-0.10.2.2/logs/server.log

查看topic first:

/usr/local/kafka_2.11-0.10.2.2/bin/kafka-topics.sh --zookeeper 172.16.2.10:2181,172.16.2.11:2181,172.16.2.12:2181 --describe --topic first

测试创建topic test1

/usr/local/kafka_2.11-0.10.2.2/bin/kafka-topics.sh --zookeeper 172.16.2.10:2181,172.16.2.11:2181,172.16.2.12:2181  --create --replication-factor 3  --partitions 2 --topic test1

 没有异常,观察半小时左右,将剩下的两台服务器都这样操作,更新配置,关闭原版本,启动新版本kafka

cp /usr/local/kafka/config/server.properties /usr/local/kafka_2.11-0.10.2.2/config/server.properties
vim /usr/local/kafka_2.11-0.10.2.2/config/server.properties
inter.broker.protocol.version=0.10.1.0
log.message.format.version=0.10.1.0

第二台kafka

 第三台kafka

 注意:替换新版broker后,注意查看新版broker是否已经注册到zookeeper,所在机器上的的副本是否已经可用。确定可用之后再更新下一台broker。

5.看kafka在zookeeper中节点信息和查看方式
(1).先到zookeeper的bin下面
Cd /usr/local/zookeeper/bin
(2).执行命令./zkCli.sh
(3).输入命令 ls /,ls /consumers 这个命令是消费者 还没有数据

(4).输入下图中的命令就能看到了

 6.修改新版本配置

确定上诉步骤已经执行完毕,并且集群一切正常后,
再次更新broker间通讯版本和消息格式版本,修改所有新版配置文件server.properties

vim /usr/local/kafka_2.11-0.10.2.2/config/server.properties
inter.broker.protocol.version=0.10.2.2
log.message.format.version=0.10.2.2  

再次依次重启新版kafka集群

/usr/local/kafka_2.11-0.10.2.2/bin/kafka-server-stop.sh 
ps -ef|grep kafka
后台启动 :
/usr/local/kafka_2.11-0.10.2.2/bin/kafka-server-start.sh  -daemon /usr/local//kafka_2.11-0.10.2.2/config/server.properties
tail -f /usr/local/kafka_2.11-0.10.2.2/logs/server.log

7.验证升级完成

/usr/local/kafka_2.11-0.10.2.2/bin/kafka-topics.sh --zookeeper 172.16.2.10:2181,172.16.2.11:2181,172.16.2.12:2181 --describe --topic first
/usr/local/kafka_2.11-0.10.2.2/bin/kafka-topics.sh --zookeeper 172.16.2.10:2181,172.16.2.11:2181,172.16.2.12:2181 --describe --topic sencod
/usr/local/ kafka_2.11-0.10.2.2/bin/kafka-topics.sh --zookeeper 172.16.2.10:2181,172.16.2.11:2181,172.16.2.12:2181 --list

注:另外通过kafka-manager界面工具边升级边观察消费者和生产者相关数据信息,

因生产环境Kafka集群中个别kafka经常是挂掉,经过分析后是kafka版本BUG,故目前已在生产环境升级完成,仅供参考。

posted @ 2020-02-26 10:36  liucx  阅读(515)  评论(0编辑  收藏  举报