在 Ubuntu 上 Kafka 启动失败,原因通常集中在配置文件、Java 环境、端口占用、ZooKeeper/KRaft 模式不匹配等几个方面。下面按最常见原因 → 排查方法 → 解决办法给你一个系统清单。
Kafka 依赖 Java。
检查:
java -version
要求:
解决:
sudo apt update
sudo apt install openjdk-11-jdk
如果你用的是 Kafka < 3.3,必须先启动 ZooKeeper。
错误典型:
Connection to ZooKeeper timed out
解决:
bin/zookeeper-server-start.sh config/zookeeper.properties
再启动:
bin/kafka-server-start.sh config/server.properties
新版本 Kafka 可不使用 ZooKeeper(KRaft 模式)。
常见错误:
java.lang.IllegalArgumentException: requirement failed
原因:
cluster.idserver.properties 混用了 ZK 和 KRaft 配置正确步骤(KRaft):
KAFKA_CLUSTER_ID=$(bin/kafka-storage.sh random-uuid)
bin/kafka-storage.sh format -t $KAFKA_CLUSTER_ID -c config/kraft/server.properties
bin/kafka-server-start.sh config/kraft/server.properties
常见错误点:
broker.id=0
多节点必须不同。
错误示例:
listeners=PLAINTEXT://localhost:9092
advertised.listeners=PLAINTEXT://:9092
正确:
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://your-host:9092
错误:
Address already in use
检查:
sudo netstat -tunlp | grep 9092
解决:
错误:
Failed to create log directory
解决:
sudo chown -R $USER:$USER /tmp/kafka-logs
或修改:
log.dirs=/home/youruser/kafka-logs
错误:
Cannot allocate memory
解决: 编辑:
bin/kafka-server-start.sh
修改:
export KAFKA_HEAP_OPTS="-Xmx512M -Xms256M"
# 1. Java
java -version
# 2. 前台启动看错误
bin/kafka-server-start.sh config/server.properties
# 3. 查看日志
tail -n 100 logs/server.log
你可以直接贴出:
我可以一行一行帮你定位 ✅