Kafka在Linux下如何进行版本升级
导读:一、升级前准备 备份关键数据:备份Kafka配置文件(如server.properties、zookeeper.properties)、数据目录(log.dirs指定路径)、日志文件及自定义Topic配置,防止升级过程中数据丢失。 下载新...
一、升级前准备
- 备份关键数据:备份Kafka配置文件(如
server.properties、zookeeper.properties)、数据目录(log.dirs指定路径)、日志文件及自定义Topic配置,防止升级过程中数据丢失。 - 下载新版本包:从Apache Kafka官方网站下载目标版本的二进制包(如
kafka_2.13-3.6.0.tgz),建议选择稳定 release 版本。 - 检查兼容性:查阅新版本官方文档,确认与现有集群的兼容性(如Zookeeper版本、客户端库版本、Broker配置参数变化),避免因不兼容导致升级失败。
- 规划升级方式:根据集群规模和服务连续性要求,选择停服升级(适合小集群或允许短暂停机)或滚动升级(适合生产环境,逐个节点升级,不影响整体服务)。
二、具体升级步骤
- 停止现有服务:
- 若采用停服升级,停止Kafka和Zookeeper服务:
sudo systemctl stop kafka /opt/zk/zookeeper-3.5.9/bin/zkServer.sh stop # 根据实际Zookeeper路径调整 - 若采用滚动升级,逐个停止集群中的Broker节点(每次停止一个,待新版本启动并加入集群后再处理下一个)。
- 若采用停服升级,停止Kafka和Zookeeper服务:
- 解压新版本包:将下载的新版本包解压到指定目录(如
/opt/kafka_new):tar -xzf kafka_2.13-3.6.0.tgz -C /opt/ mv /opt/kafka_2.13-3.6.0 /opt/kafka_new # 重命名便于管理 - 迁移配置文件:将旧版本的
config目录复制到新版本中,更新与新版本不兼容的配置项:cp -r /opt/kafka_old/config/* /opt/kafka_new/config/ # kafka_old为旧版本目录- 重点检查以下配置项:
broker.id:确保每个Broker ID唯一;listeners/advertised.listeners:更新Broker监听地址和对外暴露地址(若集群网络发生变化);log.message.format.version/inter.broker.protocol.version:若跨大版本升级,需根据官方文档设置兼容的协议版本(如从2.8升级到3.6,可能需要逐步调整)。
- 重点检查以下配置项:
- 启动新版本服务:
- 停服升级:直接启动新版本Kafka和Zookeeper:
/opt/kafka_new/bin/zookeeper-server-start.sh /opt/kafka_new/config/zookeeper.properties & /opt/kafka_new/bin/kafka-server-start.sh /opt/kafka_new/config/server.properties & - 滚动升级:启动当前节点的新版本Kafka,使用
kafka-broker-api-versions.sh工具验证节点是否成功加入集群(返回“Supported versions”列表说明成功)。
- 停服升级:直接启动新版本Kafka和Zookeeper:
- 验证升级结果:
- 使用命令行工具检查Broker版本:
/opt/kafka_new/bin/kafka-topics.sh --version # 应显示新版本号 - 创建测试Topic并发送/消费消息,验证功能正常:
# 创建Topic /opt/kafka_new/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test_upgrade # 生产消息 /opt/kafka_new/bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test_upgrade # 消费消息 /opt/kafka_new/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test_upgrade --from-beginning
- 使用命令行工具检查Broker版本:
三、升级后注意事项
- 监控集群状态:升级后密切关注Kafka集群的健康状况(如Broker存活状态、分区Leader分布、副本同步情况),使用Prometheus+Grafana或Kafka自带的
kafka-topics.sh --describe等工具排查异常。 - 清理旧版本:确认新版本运行稳定后,删除旧版本目录(如
/opt/kafka_old),释放磁盘空间。 - 回退预案:若升级后出现严重问题(如数据丢失、服务无法启动),可快速回退到旧版本:
- 停止新版本Kafka服务;
- 启动旧版本Kafka服务(路径如
/opt/kafka_old/bin/kafka-server-start.sh); - 恢复备份的配置文件和数据。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Kafka在Linux下如何进行版本升级
本文地址: https://pptw.com/jishu/729166.html
