首先确保系统软件包是最新的,避免后续安装依赖冲突:
sudo apt update && sudo apt upgrade -y
Kafka依赖Java环境,推荐安装OpenJDK 11(兼容性最佳):
sudo apt install openjdk-11-jdk -y
验证Java安装是否成功:
java -version
输出应包含openjdk version "11.x.x",确认Java已正确安装。
从Apache Kafka官方网站下载最新稳定版本(以3.5.2为例),使用wget命令获取压缩包:
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.13-3.5.2.tgz
解压压缩包到/opt目录(系统级软件推荐存放路径):
sudo tar -xzf kafka_2.13-3.5.2.tgz -C /opt/
重命名解压后的目录以便管理:
sudo mv /opt/kafka_2.13-3.5.2 /opt/kafka
为方便全局使用Kafka命令,将bin目录添加到PATH环境变量:
编辑/etc/profile文件:
sudo nano /etc/profile
在文件末尾添加以下内容(替换为实际Kafka路径):
export KAFKA_HOME=/opt/kafka
export PATH=$PATH:$KAFKA_HOME/bin
保存后使配置生效:
source /etc/profile
进入Kafka配置目录,编辑server.properties文件(关键配置项说明见注释):
sudo nano /opt/kafka/config/server.properties
修改以下核心配置:
# Broker唯一标识(集群中需唯一)
broker.id=0
# 监听的IP和端口(默认9092,若需远程访问可改为0.0.0.0)
listeners=PLAINTEXT://:9092
# 日志存储目录(需提前创建)
log.dirs=/var/log/kafka
# Zookeeper连接地址(若使用自带的Zookeeper,保持默认即可)
zookeeper.connect=localhost:2181
保存文件并退出。
Kafka依赖Zookeeper管理集群元数据,需先启动Zookeeper:
/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties &
(&表示后台运行,避免占用终端)
在另一个终端窗口启动Kafka服务:
/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties &
同样使用&让其在后台运行。
通过创建测试主题、发送/接收消息来验证Kafka是否正常运行:
test,1个分区,1个副本):/opt/kafka/bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
/opt/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092
应输出test,表示主题创建成功。/opt/kafka/bin/kafka-console-producer.sh --topic test --bootstrap-server localhost:9092
输入任意消息(如Hello Kafka),按Ctrl+C退出。/opt/kafka/bin/kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server localhost:9092
应显示生产者发送的Hello Kafka,验证消息收发功能正常。若需Kafka随系统启动自动运行,可创建systemd服务文件:
sudo nano /etc/systemd/system/kafka.service
添加以下内容(替换为实际Kafka路径):
[Unit]
Description=Apache Kafka Server
After=network.target zookeeper.service
[Service]
Type=simple
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
Restart=on-failure
User=kafka
Group=kafka
[Install]
WantedBy=multi-user.target
保存后执行以下命令启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl enable kafka
sudo systemctl start kafka
验证服务状态:
sudo systemctl status kafka
若显示active (running),则表示开机自启动配置成功。
log.dirs或zookeeper.dataDir的路径,需确保Kafka用户对该目录有读写权限(如sudo chown -R kafka:kafka /var/log/kafka)。