在Ubuntu下配置Apache Kafka的步驟如下:
首先,確保你的系統上安裝了JDK。你可以通過以下命令安裝OpenJDK 8:
sudo apt update
sudo apt install openjdk-8-jdk
驗證安裝:
java -version
確保輸出顯示OpenJDK 8。
下載Kafka安裝包并解壓到你想要的目錄。例如:
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.12-3.5.2.tgz
tar -xzf kafka_2.12-3.5.2.tgz
sudo mv kafka_2.12-3.5.2 /opt/kafka
Zookeeper是Kafka的依賴服務。你需要先配置并啟動Zookeeper。
配置Zookeeper:
進入Kafka安裝目錄下的config文件夾,復制zoo_sample.cfg為zoo.cfg:
cd /opt/kafka/config
cp zoo_sample.cfg zoo.cfg
編輯zoo.cfg文件,設置以下參數:
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
啟動Zookeeper:
/opt/kafka/bin/zookeeper-server-start.sh ../zoo.cfg
驗證Zookeeper是否啟動成功:
netstat -an | grep 2181
編輯Kafka的server.properties文件,這個文件位于Kafka安裝目錄下的config文件夾中。
編輯server.properties:
sudo nano /opt/kafka/config/server.properties
修改以下配置項:
broker.id=0
listeners=PLAINTEXT://:9092
log.dirs=/opt/kafka/data
zookeeper.connect=localhost:2181
delete.topic.enable=true
保存并退出編輯器。
啟動Kafka服務器:
/opt/kafka/bin/kafka-server-start.sh ../config/server.properties
驗證Kafka是否啟動成功:
netstat -an | grep 9092
你應該能看到類似以下的輸出,表示Kafka服務器正在監聽9092端口:
tcp 0 0 0.0.0.0:9092 0.0.0.0:* LISTEN
創建一個新的Kafka Topic來測試配置:
/opt/kafka/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test
驗證Topic是否創建成功:
/opt/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092
你可以使用Kafka提供的命令行工具來測試消息的生產和消費。
生產者:
/opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
在生產者終端輸入消息后按Ctrl+D結束輸入。
消費者:
/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
在消費者終端中,你應該能看到從生產者發送的消息。
如果你需要配置Kafka集群,需要在每臺機器上重復上述步驟,并確保每臺機器上的broker.id不同。同時,所有機器的zookeeper.connect配置應指向集群中其他機器的Zookeeper地址。
以上步驟涵蓋了在Ubuntu下配置Kafka的基本流程。根據實際需求,你可能還需要進行更多的配置和優化。