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 firstLs /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.propertiesvim /usr/local/kafka_2.11-0.10.2.2/config/server.propertiesinter.broker.protocol.version=0.10.1.0log.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.propertiesvim /usr/local/kafka_2.11-0.10.2.2/config/server.propertiesinter.broker.protocol.version=0.10.1.0log.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.propertiesinter.broker.protocol.version=0.10.2.2log.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.propertiestail -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,故目前已在生产环境升级完成,仅供参考。