1. 準備工作
2. 安裝Java環境 Kafka依賴Java運行,需先安裝OpenJDK 8:
sudo apt update
sudo apt install openjdk-8-jdk
# 驗證安裝
java -version
若輸出Java版本信息(如openjdk version "1.8.0_392"
),則說明安裝成功。
3. 安裝與配置Zookeeper Kafka通過Zookeeper管理集群元數據,需先安裝Zookeeper:
# 下載并解壓Zookeeper(以3.6.3為例)
wget https://downloads.apache.org/zookeeper/zookeeper-3.6.3/zookeeper-3.6.3.tar.gz
tar -xzvf zookeeper-3.6.3.tar.gz
sudo mv zookeeper-3.6.3 /opt/zookeeper
# 創建數據目錄并授權
sudo mkdir -p /var/lib/zookeeper
sudo chown -R $(whoami):$(whoami) /opt/zookeeper /var/lib/zookeeper
# 配置Zookeeper
sudo cat > /opt/zookeeper/conf/zoo.cfg << EOF
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
EOF
# 啟動Zookeeper
/opt/zookeeper/bin/zkServer.sh start
# 驗證啟動(檢查2181端口)
sudo netstat -plnt | grep 2181
若輸出包含0.0.0.0:2181
,則Zookeeper啟動成功。
4. 安裝Kafka 下載并解壓Kafka(以3.5.2為例):
# 下載并解壓Kafka
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.12-3.5.2.tgz
tar -xzvf kafka_2.12-3.5.2.tgz
sudo mv kafka_2.12-3.5.2 /opt/kafka
# 創建日志目錄并授權
sudo mkdir -p /var/lib/kafka
sudo chown -R $(whoami):$(whoami) /opt/kafka /var/lib/kafka
5. 配置Kafka
編輯Kafka配置文件server.properties
(位于/opt/kafka/config/
):
sudo nano /opt/kafka/config/server.properties
修改以下關鍵參數:
# Broker唯一標識(集群中需唯一)
broker.id=0
# 監聽地址(單機用localhost,集群用服務器IP)
listeners=PLAINTEXT://localhost:9092
# 日志存儲目錄
log.dirs=/var/lib/kafka
# Zookeeper連接地址
zookeeper.connect=localhost:2181
# 可選:日志保留時間(小時)
log.retention.hours=168 # 7天
保存退出(Ctrl+O
→Enter
→Ctrl+X
)。
6. 啟動Kafka
# 啟動Kafka(后臺模式)
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
# 驗證啟動(檢查9092端口)
sudo netstat -plnt | grep 9092
若輸出包含0.0.0.0:9092
,則Kafka啟動成功。
7. 測試Kafka功能
/opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 \
--replication-factor 1 --partitions 1 --topic test
/opt/kafka/bin/kafka-topics.sh --list --zookeeper localhost:2181
test
Topic發送消息):/opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
輸入消息(如Hello Kafka
),按Ctrl+C
結束。test
Topic的消息):/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 \
--topic test --from-beginning
應能看到生產者發送的消息。8. 可選:配置開機自啟動
創建systemd服務文件/etc/systemd/system/kafka.service
:
sudo nano /etc/systemd/system/kafka.service
添加以下內容:
[Unit]
Description=Kafka Service
After=network.target zookeeper.service
[Service]
Type=forking
Environment="JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64"
ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/zookeeper/config/zoo.cfg
ExecStartPost=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
ExecStopPost=/opt/zookeeper/bin/zkServer.sh stop
Restart=on-failure
[Install]
WantedBy=multi-user.target
保存退出后,執行以下命令啟用并啟動服務:
sudo systemctl daemon-reload
sudo systemctl start kafka
sudo systemctl enable kafka
通過sudo systemctl status kafka
可查看服務狀態。