温馨提示×

ubuntu kafka配置怎样升级

小樊
48
2026-09-08 14:20:31
栏目: 智能运维

在 Ubuntu 上升级 Kafka(通常指 Apache Kafka,而不是 confluent 版本),一般不建议直接覆盖安装,而是按“保留数据 + 平滑升级”的方式来做。下面给你一套通用且安全的升级步骤。


一、升级前准备

1. 查看当前版本

kafka-server-start.sh --version
# 或
ls /opt/kafka  # 看目录命名

2. 备份重要数据(非常重要)

# 配置
cp -r /opt/kafka/config ~/kafka-config-backup

# 数据(如果是单节点或测试)
cp -r /opt/kafka/logs ~/kafka-logs-backup

生产环境务必确认:

  • server.properties 中 log.dirs
  • Zookeeper 数据(如果使用 ZK)

二、确认升级兼容性(关键)

Kafka 只能逐个大版本升级,例如:

0.10 → 0.11 → 1.0 → 2.0 → 3.x

⚠️ 不能跨大版本直接跳(如 0.10 → 3.x)

官方升级文档:

https://kafka.apache.org/documentation/#upgrade

三、下载新版本 Kafka

以 3.6.1 为例:

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

四、迁移配置文件(不要直接覆盖)

推荐做法

cp -r /opt/kafka_2.13-3.6.1 /opt/kafka-new
cp /opt/kafka/config/server.properties /opt/kafka-new/config/
cp /opt/kafka/config/zookeeper.properties /opt/kafka-new/config/

对比新旧配置差异:

diff /opt/kafka/config/server.properties /opt/kafka-new/config/server.properties

五、停止旧 Kafka(重要)

# 如果是 systemd
sudo systemctl stop kafka

# 或直接
jps
kill -TERM <kafka-pid>

⚠️ 不要用 kill -9


六、切换版本(平滑切换)

sudo mv /opt/kafka /opt/kafka-old
sudo mv /opt/kafka-new /opt/kafka

确认 log.dirs 仍指向原数据目录。


七、启动新版本 Kafka

sudo systemctl start kafka

或手动:

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

查看日志:

tail -f /opt/kafka/logs/server.log

八、升级后的注意事项

1. 协议版本(重要)

在 server.properties 中:

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

升级完成后,观察一段时间再改为新版本。

2. 消费者 / 生产者客户端

建议客户端也同步升级,避免兼容问题。


九、使用 systemd 的用户注意

如果你用 systemd,修改:

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

确认:

ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties

然后:

sudo systemctl daemon-reload

十、常见坑总结

问题 原因
启动失败 跨大版本
数据丢失 log.dirs 指向错
消费者异常 协议版本未升级
Zookeeper 不兼容 ZK 版本过旧

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

  • Kafka 当前版本
  • 是否使用 Zookeeper / KRaft
  • 是否生产环境

我可以给你精确到版本的升级方案。

0 踩