在 Ubuntu 上升级 Kafka 版本,核心思路是:保留数据(可选)→ 停止旧服务 → 替换二进制包 → 调整配置 → 启动新版本。下面按生产可用、最稳妥的方式说明。
kafka-server-start.sh --version
# 或
ls /opt/kafka/libs | grep kafka_
# 配置
cp -r /opt/kafka/config /opt/kafka/config.bak
# 数据(如果保留)
cp -r /var/lib/kafka /var/lib/kafka.bak
如果你是用
systemd管理 Kafka,先停止:
sudo systemctl stop kafka
适合 小版本升级(如 3.4 → 3.7)
需要:
server.properties 变化inter.broker.protocol.version)cd /opt
sudo wget https://downloads.apache.org/kafka/3.7.1/kafka_2.13-3.7.1.tgz
sudo tar -xzf kafka_2.13-3.7.1.tgz
sudo mv kafka kafka-old
sudo mv kafka_2.13-3.7.1 kafka
或:
sudo ln -sfn /opt/kafka_2.13-3.7.1 /opt/kafka
cp /opt/kafka-old/config/server.properties /opt/kafka/config/
cp /opt/kafka-old/config/zookeeper.properties /opt/kafka/config/ # 如果用 zk
# server.properties
log.dirs=/var/lib/kafka/logs
zookeeper.connect=localhost:2181
# 大版本升级时加(升级完成后可删)
inter.broker.protocol.version=3.4
sudo systemctl start kafka
查看日志:
tail -f /opt/kafka/logs/server.log
# 查看版本
kafka-topics.sh --version
# 查看 topic
kafka-topics.sh --list --bootstrap-server localhost:9092
# 生产消费测试
kafka-console-producer.sh --topic test --bootstrap-server localhost:9092
kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server localhost:9092
如果是集群:
如果你从 ZooKeeper 迁移 KRaft:
→ 配置文件路径不对,或 JDK 版本不匹配(Kafka 3.x 需 JDK 11+)
→ log.dirs 配错
sudo lsof -i:9092
如果你能告诉我:
我可以给你精确升级命令。