在 Ubuntu 上升级 Kafka(通常指 Apache Kafka,不是 confluent 发行版),一般流程是保留配置和数据,替换二进制包。下面给你一套稳妥、可回滚的升级步骤。
kafka-server-start.sh --version
# 或
ls /opt/kafka # 看你安装目录
# 配置
cp -r /opt/kafka/config ~/kafka_config_backup
# 数据(可选但建议)
cp -r /opt/kafka/logs ~/kafka_logs_backup
Kafka 不能跨大版本乱升,规则是:
Kafka 3.x 起支持 KRaft(无 Zookeeper),但不要直接切模式
去官网: https://kafka.apache.org/downloads
cd /opt
wget https://archive.apache.org/dist/kafka/3.6.1/kafka_2.13-3.6.1.tgz
tar -xzf kafka_2.13-3.6.1.tgz
cp -r /opt/kafka/config/* /opt/kafka_2.13-3.6.1/config/
⚠️ 注意:
server.propertiesproducer.propertiesconsumer.propertiesdiff /opt/kafka/config/server.properties \
/opt/kafka_2.13-3.6.1/config/server.properties
# 如果你是 systemd
sudo systemctl stop kafka
# 如果是手动启动
jps
kill <kafka_pid>
✅ 等几秒,确认进程退出
rm /opt/kafka
ln -s /opt/kafka_2.13-3.6.1 /opt/kafka
这样以后升级只换目录,不改 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
sudo systemctl start kafka
/opt/kafka/bin/kafka-topics.sh --version
jps
看日志:
tail -f /opt/kafka/logs/server.log
如果是 多 broker 集群:
systemctl stop kafka
替换目录
systemctl start kafka
❌ 直接覆盖 bin 目录
❌ 跨 2 个大版本升级
❌ 改了 log.dirs 导致数据丢失
❌ 没备份直接升级
我可以给你精确到命令的升级方案。