一、升级前准备
server.properties、zookeeper.properties)、数据目录(log.dirs指定路径)、日志文件及自定义Topic配置,防止升级过程中数据丢失。kafka_2.13-3.6.0.tgz),建议选择稳定 release 版本。二、具体升级步骤
sudo systemctl stop kafka
/opt/zk/zookeeper-3.5.9/bin/zkServer.sh stop # 根据实际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,可能需要逐步调整)。/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-broker-api-versions.sh工具验证节点是否成功加入集群(返回“Supported versions”列表说明成功)。/opt/kafka_new/bin/kafka-topics.sh --version # 应显示新版本号
# 创建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
三、升级后注意事项
kafka-topics.sh --describe等工具排查异常。/opt/kafka_old),释放磁盘空间。/opt/kafka_old/bin/kafka-server-start.sh);