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:,172.16.2.11:,172.16.2.12: --create --replication-factor --partitions --topic first /usr/local/kafka/bin/kafka-topics.sh --zookeeper 172.16.2.10:,172.16.2.11:,172.16.2.12: --create --replication-factor --partitions --topic second
2.查看测试topic
/usr/local/kafka/bin/kafka-topics.sh --zookeeper 172.16.2.10:,172.16.2.11:,172.16.2.12: --describe --topic first
Ls /data/kafka/
3.查看当前服务器中的所有topic
/usr/local/kafka/bin/kafka-topics.sh --zookeeper 172.16.2.10:,172.16.2.11:,172.16.2.12: --list
三、升级步骤
1.安装新版本kafka
tar -xf kafka_2.-0.10.2.2.tgz -C /usr/local/
cp /usr/local/kafka_2.-0.10.1.0/config/server.properties /usr/local/kafka_2.-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.-0.10.2.2/config/server.properties
vim /usr/local/kafka_2.-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.-0.10.2.2/bin/kafka-server-start.sh -daemon /usr/local/kafka_2.-0.10.2.2/config/server.properties
tail -f /usr/local/kafka_2.-0.10.2.2/logs/server.log
查看topic first:
/usr/local/kafka_2.-0.10.2.2/bin/kafka-topics.sh --zookeeper 172.16.2.10:,172.16.2.11:,172.16.2.12: --describe --topic first
测试创建topic test1
/usr/local/kafka_2.-0.10.2.2/bin/kafka-topics.sh --zookeeper 172.16.2.10:,172.16.2.11:,172.16.2.12: --create --replication-factor --partitions --topic test1
没有异常,观察半小时左右,将剩下的两台服务器都这样操作,更新配置,关闭原版本,启动新版本kafka
cp /usr/local/kafka/config/server.properties /usr/local/kafka_2.-0.10.2.2/config/server.properties
vim /usr/local/kafka_2.-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.-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.-0.10.2.2/bin/kafka-server-stop.sh
ps -ef|grep kafka
后台启动 :
/usr/local/kafka_2.-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.-0.10.2.2/logs/server.log
7.验证升级完成
/usr/local/kafka_2.-0.10.2.2/bin/kafka-topics.sh --zookeeper 172.16.2.10:,172.16.2.11:,172.16.2.12: --describe --topic first
/usr/local/kafka_2.-0.10.2.2/bin/kafka-topics.sh --zookeeper 172.16.2.10:,172.16.2.11:,172.16.2.12: --describe --topic sencod
/usr/local/ kafka_2.-0.10.2.2/bin/kafka-topics.sh --zookeeper 172.16.2.10:,172.16.2.11:,172.16.2.12: --list
注:另外通过kafka-manager界面工具边升级边观察消费者和生产者相关数据信息,
因生产环境Kafka集群中个别kafka经常是挂掉,经过分析后是kafka版本BUG,故目前已在生产环境升级完成,仅供参考。
最新文章
- __run_timers() -- 处理全部超时定时器
- WebForms 开发基础
- Linux下的mongodb分片部署
- MongoDB管理与开发精要 书摘
- 什么是SQLCLR与使用
- 4. 2D绘制与控件绘制
- 图片旋转+剪裁js插件(兼容各浏览器) « 张鑫旭-鑫空间-鑫生活
- u-boot核心初始化
- 百度URL 部分参数
- 图片转base64上传,视频同理。
- html5-css综合练习
- SAP ABAP: Error Message ";Statement already exist"; when creating a function module.
- 学习-HTML5
- 深度学习RNN实现股票预测实战(附数据、代码)
- input value=";值栈的值";
- MongoDB的角色作用(2)
- MySQL高级-慢查询日志
- 【Foreign】K优解 [堆]
- 第三篇 css属性
- Netbeans使用UTF-8编码
热门文章
- Error connecting to the Service Control Manager: 拒绝访问 Mongodb问题-解决
- 英语学习app——Alpha发布1
- Java多线程,对锁机制的进一步分析
- 【自制操作系统06】终于开始用 C 语言了,第一行内核代码!
- Day8-Python3基础-Socket网络编程
- 尼姆博弈+SG函数
- STM8 关闭PWM输出后的电平输出问题解决
- 关于mysql8启动后又停止(windows10系统),忘记密码以及密码过期等坑解决办法总结!
- SVM(1)模式识别课堂笔记
- vue2.x中子组件修改父组件通过pops传递过来的值