温馨提示×

ubuntu怎么升级kafka

小樊
44
2026-08-17 19:36:13
栏目: 智能运维

在 Ubuntu 上升级 Kafka,取决于你当前安装方式(包管理器 / 手动解压 / Docker)。下面是最常见的 手动安装方式(推荐) 的升级步骤,也包含快速对比和注意事项。


一、升级前准备(必做)

1️⃣ 查看当前 Kafka 版本

kafka-topics.sh --version
# 或
ls /opt/kafka   # 看你安装目录

记录:

  • Kafka 版本
  • 安装目录(如 /opt/kafka
  • 配置文件路径(如 server.properties

2️⃣ 备份配置和数据(非常重要)

cp -r /opt/kafka/config ~/kafka_config_backup
cp -r /opt/kafka/logs ~/kafka_logs_backup
cp -r /var/lib/kafka ~/kafka_data_backup   # 如果有数据目录

3️⃣ 查看 Kafka 与 Scala 版本对应关系

Kafka 下载名类似:

kafka_2.13-3.6.1.tgz
  • 2.13 → Scala 版本
  • 3.6.1 → Kafka 版本

建议 Kafka 小版本升级,不要跨多个大版本


二、标准升级流程(推荐方式)

✅ 方案:滚动升级(适合生产环境)

1️⃣ 下载新版本 Kafka

cd /opt
wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
tar -zxvf kafka_2.13-3.6.1.tgz

目录结构示例:

/opt/kafka_2.13-3.6.1

2️⃣ 复制配置文件

cp ~/kafka_config_backup/server.properties /opt/kafka_2.13-3.6.1/config/
cp ~/kafka_config_backup/producer.properties /opt/kafka_2.13-3.6.1/config/
cp ~/kafka_config_backup/consumer.properties /opt/kafka_2.13-3.6.1/config/

如果你有自定义:

  • log.dirs
  • zookeeper.connect
  • broker.id

一定要保持一致


3️⃣ 停止旧 Kafka(不要删)

/opt/kafka/bin/kafka-server-stop.sh

确认进程已停止:

ps -ef | grep kafka

4️⃣ 切换软链接(推荐方式)

ln -sfn /opt/kafka_2.13-3.6.1 /opt/kafka

或直接修改 systemd 服务文件中的路径。


5️⃣ 启动新 Kafka

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

6️⃣ 验证版本

/opt/kafka/bin/kafka-topics.sh --version

三、使用 systemd(Ubuntu 16+)

如果你用 systemd:

修改服务文件

sudo vim /etc/systemd/system/kafka.service

示例:

[Unit]
Description=Apache Kafka
After=zookeeper.service

[Service]
Type=simple
User=kafka
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

重新加载:

sudo systemctl daemon-reload
sudo systemctl restart kafka

四、Kafka + Zookeeper 升级顺序(重要)

顺序 组件
1️⃣ 先升级 Zookeeper(如需要)
2️⃣ 再升级 Kafka
3️⃣ 集群中逐个 Broker 升级

不要同时升级所有 Broker


五、Docker 方式升级(如果你用 Docker)

docker pull bitnami/kafka:latest
docker stop kafka
docker rm kafka
docker run -d --name kafka bitnami/kafka:latest

六、常见坑 & 注意事项

⚠️ 不要直接覆盖原目录 ⚠️ 大版本升级前必须看迁移指南 ⚠️ inter.broker.protocol.version 可能需要调整 ⚠️ Kafka 3.x 默认不再强依赖 Zookeeper(KRaft 模式)


七、我可以帮你更精确

你可以直接告诉我:

  1. Kafka 当前版本
  2. 是否使用 Zookeeper / KRaft
  3. 是否是集群
  4. 是否生产环境

我可以给你专属于你环境的升级方案 ✅

0