在Debian上搭建Apache Kafka集群涉及多個步驟,包括安裝Java、下載和配置Kafka、啟動Zookeeper和Kafka服務器等。以下是一個基本的指南:
Kafka需要Java運行時環境(JRE)或Java開發工具包(JDK)。你可以使用OpenJDK:
sudo apt update
sudo apt install openjdk-11-jdk
驗證安裝:
java -version
Kafka使用Zookeeper來管理集群狀態。
從Apache Zookeeper官網下載最新版本的Zookeeper:
wget https://downloads.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
解壓下載的文件:
tar -xzf apache-zookeeper-3.7.0-bin.tar.gz
mv apache-zookeeper-3.7.0-bin /opt/zookeeper
創建Zookeeper數據目錄:
sudo mkdir /var/lib/zookeeper
sudo chown -R $USER:$USER /opt/zookeeper
復制配置文件模板并進行編輯:
cp /opt/zookeeper/conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg
nano /opt/zookeeper/conf/zoo.cfg
在zoo.cfg
文件中添加以下內容:
dataDir=/var/lib/zookeeper
clientPort=2181
maxClientCnxns=0
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
創建myid文件:
echo "1" | sudo tee /var/lib/zookeeper/myid # 在每個Zookeeper節點上分別設置為1, 2, 3
在每個Zookeeper節點上啟動Zookeeper服務:
/opt/zookeeper/bin/zkServer.sh start
驗證Zookeeper狀態:
/opt/zookeeper/bin/zkServer.sh status
從Apache Kafka官網下載最新版本的Kafka:
wget https://downloads.apache.org/kafka/3.0.0/kafka_2.13-3.0.0.tgz
解壓下載的文件:
tar -xzf kafka_2.13-3.0.0.tgz
mv kafka_2.13-3.0.0 /opt/kafka
創建Kafka數據目錄:
sudo mkdir /var/lib/kafka
sudo chown -R $USER:$USER /opt/kafka
編輯Kafka配置文件server.properties
:
nano /opt/kafka/config/server.properties
在server.properties
文件中進行以下配置:
broker.id=1 # 每個Kafka節點的唯一ID
listeners=PLAINTEXT://:9092
log.dirs=/var/lib/kafka
zookeeper.connect=zoo1:2181,zoo2:2181,zoo3:2181
在每個Kafka節點上啟動Kafka服務器:
/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
驗證Kafka服務器狀態:
/opt/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092
創建一個Kafka Topic:
/opt/kafka/bin/kafka-topics.sh --create --topic test-topic --bootstrap-server localhost:9092 --replication-factor 3 --partitions 3
查看Topic的詳細信息:
/opt/kafka/bin/kafka-topics.sh --describe --topic test-topic --bootstrap-server localhost:9092
啟動一個生產者發送消息:
/opt/kafka/bin/kafka-console-producer.sh --topic test-topic --bootstrap-server localhost:9092
在另一個終端啟動一個消費者接收消息:
/opt/kafka/bin/kafka-console-consumer.sh --topic test-topic --from-beginning --bootstrap-server localhost:9092
現在你可以在生產者終端輸入消息,消費者終端將會顯示這些消息。
以上步驟涵蓋了在Debian上搭建Kafka集群的基本過程。根據實際需求,你可能需要調整配置文件中的參數,例如增加更多的Kafka節點、調整分區數和副本因子等。確保每個節點的防火墻允許相應的端口通信。