生产环境kafka升级过程

Kafka 升级指南:从旧版本到3.8.0的详细步骤及注意事项

背景

Kafka 是一个分布式流处理平台,广泛应用于大数据领域。随着技术的发展,不断更新和升级 Kafka 版本可以带来更好的性能、更高的稳定性和更多的功能。本文档将指导您如何将现有的 Kafka 集群从旧版本升级到 Kafka 3.8.0,并确保集群的顺利运行。

步骤详解
1. 停止当前 Kafka 服务

首先,确保所有 Kafka 服务已经停止。这可以通过以下命令实现:

复制代码
# 停止 Kafka 服务
./kafka-server-stop.sh
2. 解压新版本 Kafka

将下载好的 Kafka 包解压到指定目录:

复制代码
tar -zxvf kafka_2.12-3.8.0.tgz -C /u01/
3. 修改 Kafka 启动脚本

编辑 Kafka 启动脚本,设置合适的堆内存大小和 JMX 监控端口:

复制代码
# 编辑 Kafka 启动脚本
vim /u01/kafka_2.12-3.8.0/bin/kafka-server-start.sh

在文件中添加以下内容:

复制代码
export KAFKA_HEAP_OPTS="-Xmx6G -Xms6G"
export JMX_PORT="9999"
4. 修改 Kafka 配置文件

将原有的配置文件复制到新的 Kafka 目录,并修改数据目录路径和协议版本:

复制代码
# 复制配置文件
cp /u01/kafka/config/server.properties /u01/kafka_2.12-3.8.0/config/

# 编辑配置文件
vim /u01/kafka_2.12-3.8.0/config/server.properties

在文件中添加或修改以下内容:

复制代码
log.dirs=/u01/kafka/data
inter.broker.protocol.version=2.6
5. 复制启动脚本

复制原有的启动脚本到新的 Kafka 目录:

复制代码
cp /u01/kafka/startkafka.sh /u01/kafka_2.12-3.8.0/
6. 移动数据文件

移动原有的日志文件到新的 Kafka 数据目录:

复制代码
mv /u01/kafka/logs /u01/kafka_2.12-3.8.0/data

删除旧版本的日志文件:

复制代码
rm /u01/kafka/logs/*.log
7. 更改目录名

更改旧版本和新版本的目录名称:

复制代码
mv /u01/kafka /u01/kafka-bak
mv /u01/kafka_2.12-3.8.0 /u01/kafka
8. 启动新版本 Kafka

启动新版本的 Kafka,并观察日志输出:

复制代码
# 启动 Kafka
./kafka-server-start.sh -daemon config/server.properties

# 查看日志
tail -f /u01/kafka/logs/kafkaServer.out
9. 检查 Kafka 版本

确认 Kafka 版本是否已成功升级:

复制代码
./kafka-topics.sh --version
10. 升级集群其他节点

重复上述步骤,依次对集群中的其他节点进行升级。

11. 取消 inter.broker.protocol.version 配置并重启

升级完成后,取消 inter.broker.protocol.version 配置,确保所有节点使用默认协议版本:

复制代码
# 编辑配置文件
vim /u01/kafka/config/server.properties

# 删除或注释掉该配置行
# inter.broker.protocol.version=2.6

依次重启所有节点:

复制代码
./kafka-server-stop.sh
./kafka-server-start.sh -daemon config/server.properties
相关推荐
晚霞的不甘13 小时前
CANN-MoE模型推理加速实战
人工智能·分布式·python
武子康15 小时前
Java-221 RocketMQ 消息存储核心原理:CommitLog、ConsumerQueue、IndexFile 与消息过滤机制
java·大数据·分布式·消息队列·rabbitmq·rocketmq·java-rocketmq
或与且与或非19 小时前
rabbitmq选举集群搭建
分布式·rabbitmq·ruby
无心水19 小时前
【分布式利器:金融级】金融级分布式架构开源框架全景解读
人工智能·分布式·金融·架构·开源·wpf·金融级框架
Swift社区19 小时前
分布式能力在鸿蒙 PC 上到底怎么用?
分布式·华为·harmonyos
Devin~Y19 小时前
大厂Java面试实战:Spring Boot微服务、Redis缓存、Kafka消息队列与Spring AI RAG
java·spring boot·redis·kafka·mybatis·spring mvc·hikaricp
无心水20 小时前
【分布式利器:SOAF】蚂蚁开源的金融级微服务全家桶:SOFAStack 核心架构与实战选型对比
人工智能·分布式·微服务·金融·架构·开源·分布式利器
深蓝电商API20 小时前
分布式电商爬虫架构:Scrapy-Redis+消息队列的集群部署
分布式·爬虫·架构
阿正的梦工坊20 小时前
RabbitMQ 消息队列详解:从原理到实战
分布式·rabbitmq
敖正炀1 天前
高并发系统的降级预案与容错策略
分布式·架构