本文指導(dǎo)您如何在linux系統(tǒng)上部署apache kafka。 我們將涵蓋環(huán)境準(zhǔn)備、Java安裝、zookeeper集群配置以及Kafka的安裝和測(cè)試。
一、準(zhǔn)備工作
- 操作系統(tǒng): 選擇合適的Linux發(fā)行版,例如centos或ubuntu。
- 服務(wù)器: 確定用于部署Kafka的服務(wù)器IP地址列表 (至少一臺(tái)用于單節(jié)點(diǎn)部署,多臺(tái)用于集群部署)。
- 軟件包: 下載Java JDK、ZooKeeper和Kafka的安裝包。 確保版本兼容性。
二、安裝Java JDK
根據(jù)您的Linux發(fā)行版,使用以下命令安裝Java 8 JDK (建議使用8,但可根據(jù)Kafka版本調(diào)整):
-
Ubuntu/debian:
sudo apt update sudo apt install openjdk-8-jdk
-
CentOS/RHEL:
sudo yum install java-1.8.0-openjdk
配置環(huán)境變量:編輯/etc/profile文件,添加以下內(nèi)容,將/path/to/java替換為實(shí)際Java安裝路徑:
export JAVA_HOME=/path/to/java export PATH=$PATH:$JAVA_HOME/bin
運(yùn)行 source /etc/profile 使配置生效。 使用 java -version 驗(yàn)證安裝。
三、部署ZooKeeper集群
-
解壓ZooKeeper: 將ZooKeeper安裝包解壓到 /opt 目錄 (或您選擇的目錄):
tar -zxvf zookeeper-3.4.10.tar.gz -C /opt
-
配置環(huán)境變量: 編輯/etc/profile,添加ZooKeeper環(huán)境變量,將/path/to/zookeeper替換為實(shí)際路徑:
export ZOOKEEPER_HOME=/path/to/zookeeper export PATH=$PATH:$ZOOKEEPER_HOME/bin
運(yùn)行 source /etc/profile 使配置生效。
-
配置zoo.cfg: 編輯/opt/zookeeper/conf/zoo.cfg 文件,配置以下參數(shù) (根據(jù)您的服務(wù)器數(shù)量和IP地址調(diào)整 server.* 配置):
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/data/zookeeper/data # 創(chuàng)建該目錄 clientPort=2181 maxClientCnxns=60 dataLogDir=/data/zookeeper/log # 創(chuàng)建該目錄 server.1=server01:2888:3888 server.2=server02:2888:3888 server.3=server03:2888:3888
-
打開(kāi)防火墻端口: 允許ZooKeeper使用的端口通過(guò)防火墻 (2181, 2888, 3888):
firewall-cmd --add-port=2181/tcp --permanent firewall-cmd --add-port=2888/tcp --permanent firewall-cmd --add-port=3888/tcp --permanent firewall-cmd --reload
-
創(chuàng)建myid文件: 在每個(gè)ZooKeeper服務(wù)器的/data/zookeeper/data目錄下創(chuàng)建myid文件,文件內(nèi)容為該服務(wù)器的ID (1, 2, 3 …)。
-
啟動(dòng)ZooKeeper: 在每個(gè)ZooKeeper服務(wù)器上運(yùn)行: ./bin/zkServer.sh start
四、安裝和配置Kafka
-
解壓Kafka: 將Kafka安裝包解壓到 /opt 目錄:
tar -zxvf kafka_2.12-3.5.2.tgz -C /opt
-
配置server.properties: 編輯/opt/kafka/config/server.properties 文件,配置以下參數(shù) (調(diào)整 broker.id 和 zookeeper.connect 以匹配您的環(huán)境):
broker.id=0 port=9092 host.name=localhost log.dirs=/opt/kafka/kafka_2.12-3.5.2/logs # 創(chuàng)建該目錄 zookeeper.connect=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181 # 替換為ZooKeeper服務(wù)器地址
-
啟動(dòng)Kafka: 運(yùn)行 ./bin/kafka-server-start.sh config/server.properties
五、創(chuàng)建Topic和測(cè)試
-
創(chuàng)建Topic: 使用以下命令創(chuàng)建一個(gè)名為 test 的Topic:
./bin/kafka-topics.sh --create --zookeeper zookeeper1:2181 --replication-factor 1 --partitions 1 --topic test ``` (將 `zookeeper1:2181` 替換為ZooKeeper連接字符串)
-
列出Topic: 使用 ./bin/kafka-topics.sh –zookeeper zookeeper1:2181 –list 查看已創(chuàng)建的Topic。
-
生產(chǎn)者測(cè)試: 在一個(gè)終端運(yùn)行生產(chǎn)者:
./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
-
消費(fèi)者測(cè)試: 在另一個(gè)終端運(yùn)行消費(fèi)者:
./bin/kafka-console-consumer.sh --zookeeper zookeeper1:2181 --topic test --from-beginning
完成以上步驟后,您已在Linux上成功部署Kafka。 請(qǐng)記住將占位符替換為您的實(shí)際路徑和IP地址。 對(duì)于集群部署,請(qǐng)重復(fù)步驟三和四,并在 server.properties 和 zoo.cfg 中正確配置所有服務(wù)器。