Ubuntu 上 Kafka 配置报错的原因非常多,需要结合具体报错信息才能精确定位。下面我按常见场景 + 典型错误 + 解决办法给你一个排查清单,你可以对照看看是哪一种。
java: command not found
UnsupportedClassVersionError
Kafka 依赖 Java(推荐 JDK 8 / 11 / 17,取决于 Kafka 版本)
java -version
若没有 Java:
sudo apt update
sudo apt install openjdk-11-jdk
设置 JAVA_HOME:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
Error while reading configuration: ...
Unknown configuration key
config/server.properties 中:
broker.id=0
listeners=PLAINTEXT://:9092
log.dirs=/tmp/kafka-logs
zookeeper.connect=localhost:2181
⚠️ 注意:
listeners 不能写成 localhost:9092broker.id 必须不同log.dirs 目录必须存在且可写Connection refused to Zookeeper
Timeout connecting to zookeeper
Kafka 2.8 之前依赖 Zookeeper:
bin/zookeeper-server-start.sh config/zookeeper.properties
再启动 Kafka:
bin/kafka-server-start.sh config/server.properties
No `meta.properties` found
Node does not match stored clusterId
KRaft 模式必须先初始化:
bin/kafka-storage.sh random-uuid
bin/kafka-storage.sh format \
-t <uuid> \
-c config/kraft/server.properties
server.properties 示例:
process.roles=broker,controller
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
controller.quorum.voters=0@localhost:9093
Bind failed: Address already in use
netstat -tulnp | grep 9092
杀掉占用进程或修改 listeners 端口
Permission denied
Failed to create log directory
sudo mkdir -p /var/lib/kafka
sudo chown -R $USER:$USER /var/lib/kafka
localhost 有时不如 127.0.0.1/mnt/c 下跑 Kafka(NTFS 权限问题)请把以下信息发我:
我可以直接帮你改到能跑 ✅