温馨提示×

debian如何升级kafka

小樊
46
2026-09-19 01:36:13
栏目: 智能运维

在 Debian 系统上升级 Kafka,通常不是通过 apt 直接升级(Debian 官方源里的 Kafka 版本通常很旧),而是手动下载新版本并替换。下面按稳妥、可回滚的方式说明。


一、升级前准备(非常重要)

1. 查看当前版本

kafka-server-start.sh --version
# 或
cat /opt/kafka/li*/kafka_*/VERSION

2. 确认 Kafka 安装方式

常见路径:

  • /opt/kafka
  • /usr/local/kafka
  • /srv/kafka

3. 备份

cp -r /opt/kafka /opt/kafka_backup_$(date +%F)

4. 查看兼容性(关键)

  • Kafka 0.10 → 2.x → 3.x 需注意协议版本
  • 跨大版本升级建议:逐个 minor 版本升
  • 官方文档:
    https://kafka.apache.org/documentation/#upgrade

二、停止 Kafka 和 Zookeeper

systemctl stop kafka
systemctl stop zookeeper

或(如果是脚本启动):

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

三、下载新版本 Kafka

以 3.6.1 为例:

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

四、替换 Kafka(保留配置和数据)

方式一:整体替换(推荐)

mv /opt/kafka /opt/kafka_old
mv /tmp/kafka_2.13-3.6.1 /opt/kafka

然后恢复配置:

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

方式二:只更新 lib(高级)

不建议新手使用。


五、注意数据目录

不要动 log.dirs 指定的数据目录!

检查:

log.dirs=/var/lib/kafka-logs

确保新 Kafka 仍指向旧数据目录。


六、升级协议版本(跨大版本必须)

1. 升级后先保持旧协议

server.properties

inter.broker.protocol.version=CURRENT_VERSION

例如从 2.8 → 3.6:

inter.broker.protocol.version=2.8

2. 重启 Kafka

systemctl start kafka

3. 观察无异常后,改为新版本

inter.broker.protocol.version=3.6

再次重启。


七、验证

systemctl status kafka
kafka-topics.sh --list --bootstrap-server localhost:9092

八、常见问题

1. 启动报 Java 版本错误

Kafka 3.x 需要 Java 11+

java -version

2. 不想用 Zookeeper?

Kafka 3.x 支持 KRaft 模式(无 ZK),但是升级不能自动转,需新建集群。


九、总结(最简流程)

停服务 → 备份 → 下新版 → 替换 → 恢复配置 → 保留数据目录 → 升级协议 → 重启

如果你愿意,可以告诉我:

  • 当前 Kafka 版本
  • 是否用 Zookeeper
  • 是否已 systemd 管理

我可以给你精确到命令的升级方案

0