1. 程式人生 > 實用技巧 >【轉】怎樣在CentOS 8上安裝Apache Kafka

【轉】怎樣在CentOS 8上安裝Apache Kafka

原文連結:https://bynss.com/2020/317358.html

Apache Kafka是一個分散式流平臺。建立實時流資料管道,以幫助您在系統或應用程式之間捕獲資料。另一個有用的功能是實時流應用程式,可以轉換和響應資料流。本教程將幫助您安裝Apache Kafka CentOS 8 Linux系統。

第1步-安裝Java

Apache Kafka要求在您的系統上安裝Java。您可以通過執行以下命令在計算機上安裝OpenJDK:還要安裝其他一些必要的工具。

sudo dnf install java-11-openjdk wget vim

第2步–下載Apache Kafka

從官方下載網站下載Apache Kafka二進位制檔案。您也可以選擇附近的鏡子進行下載。

wget http://www-us.apache.org/dist/kafka/2.4.0/kafka_2.13-2.4.0.tgz

然後解壓縮存檔檔案

tar xzf kafka_2.13-2.4.0.tgz
mv kafka_2.13-2.4.0 /usr/local/kafka

步驟3 –設定Kafka Systemd單位檔案

CentOS 8使用systemd來管理服務狀態。因此,您需要為Zookeeper和Kafka服務建立systemd單元檔案。這使您可以管理和啟動/停止Kafka服務。

首先,使用以下命令建立一個Zookeeper systemd單位檔案:

vim /etc/systemd/system/zookeeper.service

新增以下內容。

[Unit]
Description=Apache Zookeeper server
Documentation=http://zookeeper.apache.org
Requires=network.target remote-fs.target
After=network.target remote-fs.target

[Service]
Type=simple
ExecStart=/usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties
ExecStop=/usr/local/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

儲存並關閉檔案。

接下來,使用以下命令建立Kafka systemd單位檔案:

vim /etc/systemd/system/kafka.service

新增以下內容。確保正確設定JAVA_HOME系統上安裝的每個Java的路徑。

[Unit]
Description=Apache Kafka Server
Documentation=http://kafka.apache.org/documentation.html
Requires=zookeeper.service

[Service]
Type=simple
Environment="JAVA_HOME=/usr/lib/jvm/jre-11-openjdk"
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh

[Install]
WantedBy=multi-user.target

儲存並關閉檔案。

重新載入systemd守護程式並應用更改。

systemctl daemon-reload

第4步-啟動Kafka伺服器

Kafka需要ZooKeeper,因此首先在系統上啟動ZooKeeper伺服器。您可以使用Kafka中可用的指令碼來啟動單節點ZooKeeper例項。

sudo systemctl start zookeeper

接下來,啟動Kafka伺服器並檢視執行狀態。

sudo systemctl start kafka
sudo systemctl status kafka

一切都完成了。您已在CentOS 8上成功安裝了Kafka。本教程的下一部分將幫助您在Kafka叢集上建立主題,並與Kafka生產者和消費者服務一起使用。

第5步-使用Apache Kafka建立主題

Apache Kafka提供了幾個Shell指令碼來處理它。首先testTopic“在具有單個副本的單個分割槽中:

cd /usr/local/kafka
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testTopic

Created topic testTopic.

複製因子表示要製作的資料的副本數。將此值保持為1,因為您正在單個例項上執行。

將分割槽選項設定為將拆分資料的代理數。當您在單個代理上執行時,將此值保持為1。

您可以通過執行與上述相同的命令來建立多個主題。然後,您可以通過執行以下命令在Kafka中檢查建立的主題:

bin/kafka-topics.sh --list --zookeeper localhost:2181

testTopic
KafkaonCentOS8
TutorialKafkaInstallCentOS8

或者,可以將代理配置為在釋出不存在的主題時自動建立主題,而不是手動建立主題。

第6步-Apache Kafka生產者和消費者

“生產者”是將資料輸入Kafka的過程。 Kafka帶有命令列客戶端,該客戶端從檔案或標準輸入中獲取輸入,並將其作為訊息傳送到Kafka叢集。預設情況下,Kafka將每行作為單獨的訊息傳送。

執行生產者,然後在控制檯中輸入一些訊息並將其傳送到伺服器。

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testTopic

>Welcome to kafka
>This is my first topic
>

接下來,開啟一個執行Apache Kafka使用者程序的新終端。 Kafka還提供了一個命令列使用者,可以從Kafka叢集中讀取資料並將訊息列印到標準輸出中。

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testTopic --from-beginning

Welcome to kafka
This is my first topic

-from-beginning選項用於從所選主題的開頭讀取訊息。您可以跳過此選項,僅閱讀最新訊息。

例如,在單獨的終端中執行Kafka的生產者和消費者。只需在生產者終端輸入文字。它會立即顯示在消費者終端上。檢視工作的Kafka生產者和消費者的螢幕截圖。

結論

您已在CentOS 8 Linux機器上成功安裝並配置了Kafka服務。