在Debian上升级Kafka版本的步骤
/etc/kafka/server.properties)、数据目录(默认/var/lib/kafka/data)和日志文件(默认/var/log/kafka),防止升级过程中数据丢失或配置错误。可使用cp -r命令递归复制目录,例如:sudo cp -r /etc/kafka /etc/kafka_backup、sudo cp -r /var/lib/kafka /var/lib/kafka_backup。UPGRADE.md),确认新版本与当前版本的集群配置(如inter.broker.protocol.version、log.message.format.version)、客户端库(如Producer/Consumer SDK版本)、依赖组件(如Zookeeper版本,若使用KRaft模式则无需Zookeeper)的兼容性。例如,Kafka 4.0及以上版本移除了对Zookeeper的依赖,需提前调整架构。sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y。https://kafka.apache.org/downloads),选择目标版本(如3.5.0)的tar.gz压缩包,使用wget下载到指定目录(如/tmp)。例如:wget https://archive.apache.org/dist/kafka/3.5.0/kafka_2.13-3.5.0.tgz。/opt目录(或其他自定义目录,需确保有足够权限),例如:sudo tar -xzf /tmp/kafka_2.13-3.5.0.tgz -C /opt/。解压后会生成kafka_2.13-3.5.0目录(目录名包含Scala版本和Kafka版本)。systemctl命令停止正在运行的Kafka服务,确保数据不会在升级过程中被修改。例如:sudo systemctl stop kafka。若使用init.d脚本,可执行sudo service kafka stop。_old后缀),便于后续回退。例如:sudo mv /opt/kafka_2.12-2.8.0 /opt/kafka_2.12-2.8.0_old(假设旧版本为2.8.0)。/opt/kafka)。例如:sudo ln -s /opt/kafka_2.13-3.5.0 /opt/kafka。后续可通过/opt/kafka访问新版本。config目录复制到新版本目录(覆盖默认配置),然后根据新版本要求修改server.properties文件。需重点检查以下配置项:
broker.id:确保集群中每个Broker的ID唯一;listeners:更新Broker监听地址(如PLAINTEXT://:9092);advertised.listeners:更新客户端访问的Broker地址(如PLAINTEXT://your-broker-ip:9092);log.dirs:确认数据目录路径(如/var/lib/kafka/data);zookeeper.connect:若仍使用Zookeeper,确保连接字符串正确(如localhost:2181);inter.broker.protocol.version、log.message.format.version)需根据兼容性要求设置。systemctl命令启动新版本Kafka服务:sudo systemctl start kafka。sudo systemctl enable kafka。kafka-topics.sh --version,输出应显示新版本号(如3.5.0)。systemctl查看Kafka服务状态,确保无错误。例如:sudo systemctl status kafka,输出应显示active (running)。kafka-topics.sh --create --topic test-topic --partitions 3 --replication-factor 1 --bootstrap-server localhost:9092;kafka-console-producer.sh --topic test-topic --bootstrap-server localhost:9092;kafka-console-consumer.sh --topic test-topic --from-beginning --bootstrap-server localhost:9092。sudo rm -rf /opt/kafka_2.12-2.8.0_old。sudo rm /tmp/kafka_2.12-2.8.0.tgz。sudo systemctl start kafka_old),并恢复配置和数据。/var/log/kafka),及时发现并解决潜在问题。