首先確保系統軟件包是最新的,避免后續安裝依賴沖突:
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)。