在 Ubuntu 上安装 Kafka 主要有两种方式:使用 apt 包管理器(官方推荐,最简单)和手动下载二进制包(最灵活,适合生产环境)。
以下是两种方法的详细步骤:
从 Ubuntu 22.04 (Jammy) 开始,Kafka 已经被收录到官方软件源中。这是最省心的方法,因为依赖(如 Java)会自动处理。
1. 更新软件包列表
sudo apt update
2. 安装 Kafka
sudo apt install kafka
3. 安装 Java (如果未自动安装) Kafka 依赖 Java 运行环境。如果上面的命令没有自动安装 Java,你需要手动安装:
sudo apt install openjdk-11-jre-headless
# 或者更新版本
# sudo apt install openjdk-17-jre-headless
4. 启动服务 安装完成后,Kafka 和 Zookeeper(旧版本依赖)会作为 systemd 服务存在。
# 启动 Zookeeper (如果需要)
sudo systemctl start zookeeper
# 启动 Kafka
sudo systemctl start kafka
# 设置开机自启
sudo systemctl enable kafka
5. 验证状态
sudo systemctl status kafka
这种方式可以让你选择特定的 Kafka 版本,并且更贴近官方文档的配置方式。
Kafka 需要 Java 8 或更高版本。
sudo apt update
sudo apt install openjdk-11-jdk -y
验证安装:
java -version
访问 Apache Kafka 官网 获取最新版本的下载链接。
目前最新稳定版通常是 3.x 系列。复制 Binary 下载链接(注意不要 Scala 源码版)。
# 进入临时目录
cd /tmp
# 下载 (请替换为最新的链接,以下为示例)
wget https://downloads.apache.org/kafka/3.6.0/kafka_2.13-3.6.0.tgz
# 解压
tar -xzf kafka_2.13-3.6.0.tgz
# 移动到 /opt 目录 (可选,为了整洁)
sudo mkdir -p /opt/kafka
sudo mv kafka_2.13-3.6.0/* /opt/kafka/
为了方便启动,可以将 Kafka 的 bin 目录加入 PATH。
编辑 ~/.bashrc 或 /etc/profile:
export KAFKA_HOME=/opt/kafka
export PATH=$PATH:$KAFKA_HOME/bin
使配置生效:
source ~/.bashrc
Kafka 2.8+ 版本支持不依赖 Zookeeper 运行(KRaft 模式),但为了通用性,这里演示传统的 Zookeeper + Kafka 模式。
1. 启动 Zookeeper 打开第一个终端窗口:
cd /opt/kafka
# 使用自带的配置文件启动 Zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties
2. 启动 Kafka Broker 打开第二个终端窗口:
cd /opt/kafka
# 启动 Kafka Server
bin/kafka-server-start.sh config/server.properties
如果要在后台运行(守护进程),加上 -daemon 参数:
bin/kafka-server-start.sh -daemon config/server.properties
无论用哪种方法安装,只要服务起来了,都可以用以下命令测试。
1. 创建 Topic
# 如果使用方法二,需要在 /opt/kafka 目录下执行
bin/kafka-topics.sh --create --topic test-topic --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
2. 查看 Topic 列表
bin/kafka-topics.sh --list --bootstrap-server localhost:9092
3. 发送消息 (生产者)
bin/kafka-console-producer.sh --topic test-topic --bootstrap-server localhost:9092
输入几行文字,按 Ctrl+C 退出。
4. 接收消息 (消费者)
bin/kafka-console-consumer.sh --topic test-topic --from-beginning --bootstrap-server localhost:9092
如果能看到刚才发送的消息,说明安装成功!
java -version 有输出。如果没有,请重新安装 openjdk。9092 端口,Zookeeper 使用 2181。确保这些端口未被占用。bin/kafka-server-start.sh,修改 KAFKA_HEAP_OPTS:export KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"
# 停止 Kafka
bin/kafka-server-stop.sh
# 停止 Zookeeper
bin/zookeeper-server-stop.sh