在CentOS上搭建Kafka集群涉及多個步驟,包括安裝Java、下載Kafka、配置Zookeeper和Kafka、啟動服務以及驗證集群狀態。以下是一個詳細的步驟指南:
Kafka需要Java運行環境,因此首先需要安裝Java??梢允褂靡韵旅畎惭bOpenJDK 8:
sudo yum install -y java-1.8.0-openjdk
安裝完成后,驗證Java版本:
java -version
從Apache Kafka官網下載最新版本的Kafka。例如,下載Kafka 2.13.0版本:
wget https://downloads.apache.org/kafka/2.13.0/kafka_2.13-2.13.0.tgz
將下載的Kafka安裝包解壓到指定目錄,例如 /opt
:
tar -xzf kafka_2.13-2.13.0.tgz -C /opt
Kafka依賴于Zookeeper來管理集群狀態信息。在Kafka配置目錄下創建一個新的Zookeeper配置文件并編輯:
cd /opt/kafka_2.13-2.13.0
sudo cp config/zookeeper.properties config/zookeeper.properties.bak
sudo nano config/zookeeper.properties
在配置文件中,進行以下配置:
dataDir=/tmp/zookeeper
clientPort=2181
啟動Zookeeper服務:
./bin/zookeeper-server-start.sh config/zookeeper.properties
在Kafka配置目錄下創建一個新的Kafka配置文件并編輯:
sudo cp config/server.properties config/server.properties.bak
sudo nano config/server.properties
進行以下配置:
broker.id=0
listeners=PLAINTEXT://:9092
log.dirs=/tmp/kafka-logs
zookeeper.connect=localhost:2181
進入Kafka目錄,并啟動Kafka服務:
cd /opt/kafka_2.13-2.13.0
./bin/kafka-server-start.sh config/server.properties
創建一個主題并生產一些消息以驗證安裝:
./bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
生產消息:
./bin/kafka-console-producer.sh --topic test --bootstrap-server localhost:9092
在控制臺輸入一些消息,例如:
Hello, Kafka!
然后按 Ctrl+C 退出生產者。
創建一個消費者來消費這些消息:
./bin/kafka-console-consumer.sh --topic test --bootstrap-server localhost:9092 --from-beginning
您應該能看到之前生產的消息:
Hello, Kafka!
對于多節點集群,需要在其他節點上重復上述步驟,并確保每個節點的 broker.id
唯一。同時,所有節點的 zookeeper.connect
配置應指向同一個Zookeeper實例。
在任意一個節點上執行以下命令查看集群元數據:
./bin/kafka-metadata-shell.sh --snapshot /tmp/zookeeper/log_dir/__cluster_metadata-0/00000000000000000000.log
使用以下命令測試Topic自動創建:
./bin/kafka-console-producer.sh --bootstrap-server localhost:9092,localhost:9093,localhost:9094 --topic auto-created-topic
查看Topic分區分布:
./bin/kafka-topics.sh --bootstrap-server localhost:9092,localhost:9093,localhost:9094 --describe --topic auto-created-topic
以上步驟應該可以幫助您在CentOS上成功搭建和配置Kafka集群。