温馨提示×

ubuntu kafka配置如何升级版本

小樊
46
2026-10-02 15:16:02
栏目: 智能运维

在 Ubuntu 上升级 Kafka 版本,一般不会通过 apt 直接升级(官方 Kafka 通常不走 apt 源),而是手动替换二进制包。下面给你一套安全、常用的升级步骤,适用于大多数生产/测试环境。


一、升级前准备

1. 查看当前版本

# 进入 kafka 目录
cd /opt/kafka
cat release-notes.md | head
# 或
bin/kafka-topics.sh --version

2. 查看当前配置和数据目录

确认以下重要路径(不要删):

  • 配置文件:config/server.properties
  • 数据目录(log.dirs):如 /data/kafka-logs
  • Zookeeper(如使用):config/zookeeper.properties

3. 备份(非常重要)

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

二、Kafka 版本升级方式(推荐)

方式一:直接替换二进制(最常用)

1. 下载新版本

wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz
tar -xzf kafka_2.13-3.7.0.tgz

2. 停止旧 Kafka

bin/kafka-server-stop.sh
# 如果使用 systemd
sudo systemctl stop kafka

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

mv /opt/kafka /opt/kafka_old
mv kafka_2.13-3.7.0 /opt/kafka

4. 恢复配置

cp /opt/kafka_old/config/server.properties /opt/kafka/config/

⚠️ 注意:

  • 不要覆盖 log.dirs
  • 新版本配置项可能变化,建议 diff 一下
diff /opt/kafka_old/config/server.properties /opt/kafka/config/server.properties

三、协议版本兼容(重要)

如果是跨大版本升级(如 2.x → 3.x):

1. 升级前先改协议版本

在 server.properties 中:

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

例如从 2.8 升级到 3.7:

inter.broker.protocol.version=2.8

2. 启动 Kafka

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

3. 确认无误后,再升级协议

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

重启 Kafka。


四、使用 systemd 的情况

如果你是用 systemd 管理:

sudo systemctl stop kafka
# 替换目录后
sudo systemctl start kafka
sudo systemctl status kafka

示例 service:

[Unit]
Description=Apache Kafka
After=network.target

[Service]
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

五、升级后验证

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

六、常见注意事项

✅ Kafka 支持滚动升级(多 broker)
✅ 不要同时升级 Kafka + Zookeeper + OS
❌ 不要直接 apt upgrade(Ubuntu 自带 kafka 很旧)
❌ 不要删除 kafka-logs


如果你能告诉我:

  • 当前 Kafka 版本
  • 是否使用 KRaft(无 Zookeeper)
  • 单节点还是集群

我可以给你更精确的升级方案。

0 踩