温馨提示×

linux如何升级kafka

小樊
46
2026-10-14 03:12:36
栏目: 智能运维

在 Linux 上升级 Kafka,通常分为 单节点 和 集群(多 broker) 两种情况。下面以**最常见的 Apache Kafka(非 CDH / 云托管)**为例说明。


一、升级前准备(重要)

1. 查看当前 Kafka 版本

cd /opt/kafka
cat release
# 或
bin/kafka-topics.sh --version

2. 阅读官方升级说明(必须)

不同版本升级路径不同,尤其是 0.10 → 1.x → 2.x → 3.x: https://kafka.apache.org/documentation/#upgrade

⚠️ 大版本升级可能有 协议版本(inter.broker.protocol.version) 要求

3. 备份配置和数据(强烈建议)

cp -r /opt/kafka /opt/kafka_backup
cp server.properties server.properties.bak

二、单节点 Kafka 升级(简单)

1. 下载新版本

wget https://archive.apache.org/dist/kafka/3.6.1/kafka_2.13-3.6.1.tgz
tar -xzf kafka_2.13-3.6.1.tgz

2. 停止旧 Kafka

bin/kafka-server-stop.sh

3. 替换目录(保留数据)

mv /opt/kafka /opt/kafka_old
mv kafka_2.13-3.6.1 /opt/kafka
cp /opt/kafka_old/config/server.properties /opt/kafka/config/

4. 启动 Kafka

bin/kafka-server-start.sh -daemon config/server.properties

三、Kafka 集群滚动升级(推荐方式)

✅ 不中断服务,逐个 broker 升级

1. 修改旧版本配置

在 升级前 的旧 Kafka 上:

inter.broker.protocol.version=CURRENT_VERSION
log.message.format.version=CURRENT_VERSION

重启所有 broker(使配置生效)

2. 逐个 broker 升级

对每个 broker:

# 停止
bin/kafka-server-stop.sh

# 替换二进制
cp -r /opt/kafka_new/* /opt/kafka/

# 修改配置
inter.broker.protocol.version=NEW_VERSION

# 启动
bin/kafka-server-start.sh -daemon config/server.properties

✅ 等一个 broker 正常后再升级下一个

3. 全部升级完成后

修改配置:

inter.broker.protocol.version=NEW_VERSION
log.message.format.version=NEW_VERSION

重启所有 broker


四、常见版本升级注意点

升级路径 注意
2.x → 3.x ZooKeeper 仍可用,可选 KRaft
旧 → KRaft 必须新建集群
0.10 以前 必须先升到 0.10+

五、验证升级成功

bin/kafka-broker-api-versions.sh --bootstrap-server localhost:9092
bin/kafka-topics.sh --list --bootstrap-server localhost:9092

如果你能提供:

  • 当前 Kafka 版本
  • 是否集群
  • 是否使用 ZooKeeper / KRaft

我可以给你精确升级步骤。

0 踩