在 Ubuntu 上启动 Kafka 服务,一般分两种情况:单机直接启动 和 用 systemd 作为服务启动。下面按常见流程一步步来。
Kafka 依赖 Zookeeper(Kafka 2.x 及以前)或 KRaft(Kafka 3.x+)。
sudo apt update
sudo apt install openjdk-11-jdk -y
java -version
wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
tar -xzf kafka_2.13-3.6.1.tgz
cd kafka_2.13-3.6.1
版本号可自行替换
bin/zookeeper-server-start.sh config/zookeeper.properties
✅ 看到 binding to port 2181 表示成功
打开 新终端 再执行:
bin/kafka-server-start.sh config/server.properties
✅ 看到类似:
[KafkaServer id=0] started
bin/kafka-topics.sh --bootstrap-server localhost:9092 --list
sudo vim /etc/systemd/system/zookeeper.service
[Unit]
Description=Zookeeper
After=network.target
[Service]
Type=simple
User=ubuntu
ExecStart=/home/ubuntu/kafka/bin/zookeeper-server-start.sh /home/ubuntu/kafka/config/zookeeper.properties
ExecStop=/home/ubuntu/kafka/bin/zookeeper-server-stop.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
sudo vim /etc/systemd/system/kafka.service
[Unit]
Description=Apache Kafka
After=zookeeper.service
[Service]
Type=simple
User=ubuntu
ExecStart=/home/ubuntu/kafka/bin/kafka-server-start.sh /home/ubuntu/kafka/config/server.properties
ExecStop=/home/ubuntu/kafka/bin/kafka-server-stop.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
⚠️ 路径改成你自己的 Kafka 目录
sudo systemctl daemon-reload
sudo systemctl start zookeeper
sudo systemctl start kafka
sudo systemctl enable zookeeper
sudo systemctl enable kafka
sudo systemctl status kafka
sudo systemctl status zookeeper
cat logs/server.log
常见原因:
log.dirs 路径不存在如果你用的是 Kafka 3.x+,我可以给你 KRaft 模式 的启动方式。
# 启动 Zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties
# 启动 Kafka
bin/kafka-server-start.sh config/server.properties
如果你愿意,可以告诉我:
我可以按你的环境给你 精确配置。