Apache Kafka? 是一個分布式流處理平臺.
我們知道流處理平臺有以下三種特性:
可以讓你發布和訂閱流式的記錄,這一方面與訊息佇列或者企業訊息系統類似,
可以儲存流式的記錄,并且有較好的容錯性,
可以在流式記錄產生時就進行處理,

在本文中,您將學習如何在CentOS 8上安裝Apache Kafka Server,
目錄- 什么是Apache Kafka?
- 環境規格:
- 第一步:Linux服務器中更新軟體包
- 第二步:服務器上安裝Java Development Kit(JDK)
- 第三步:CentOS 8上安裝Apache Kafka服務器
- 第五步:Apache Kafka Server中創建主題
什么是Apache Kafka?
Kafka是由Apache Software Foundation開發的開源流處理軟體平臺,用Scala和Java撰寫,該專案旨在為處理實時資料提要提供一個統一的,高吞吐量,低延遲的平臺,
Kafka可以通過Kafka Connect連接到外部系統(用于資料匯入/匯出),并提供Java流處理庫Kafka Streams,Kafka使用基于TCP的二進制協議,該協議針對效率進行了優化,并依賴于“訊息集”抽象,該抽象將訊息自然地組合在一起以減少網路往返的開銷,這“導致更大的網路資料包,更大的順序磁盤操作,連續的記憶體塊,從而使Kafka可以將突發的隨機訊息寫入流轉換為線性寫入,” (來源:維基百科)
環境規格:
我們使用的是最低規格的[CentOS 8 KVM]計算機,
- CPU -3.4 GHz(2核)
- 記憶體-2 GB
- 儲存空間-20 GB
- 作業系統-CentOS 8.2
- 主機名– kafka.lianglab.cn
- IP地址-192.168.6.65/24
第一步:Linux服務器中更新軟體包
在ssh客戶端的幫助下,以root用戶身份與**kafka.lianglab.nc連接,
更新Linux服務器上已安裝的軟體軟體包,在此安裝指南中,我們正在使用CentOS Linux,因此,您可以為此使用dnf命令,
[root@kafka ~]# dnf update -y
Last metadata expiration check: 0:19:21 ago on Mon 09 Nov 2020 09:21:21 PM PKT.
Dependencies resolved.
Nothing to do.
Complete!
檢查本安裝指南中使用的Linux作業系統和內核版本,
[root@kafka ~]# uname -r
4.18.0-193.28.1.el8_2.x86_64
[root@kafka-01 ~]# cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)
第二步:服務器上安裝Java Development Kit(JDK)
Apache Kafka使用Java編程語言構建,因此需要Java Development Kit 8或更高版本,
JDK 11在標準yum存盤庫中可用,因此,您可以使用以下Linux命令安裝JDK 11,
[root@kafka ~]# dnf install -y java-11-openjdk
Last metadata expiration check: 2:13:52 ago on Tue 22 Dec 2020 09:20:53 PM CST.
Dependencies resolved.
========================================================================================================================
Package Architecture Version Repository Size
========================================================================================================================
Installing:
java-11-openjdk x86_64 1:11.0.9.11-0.el8_2 AppStream 251 k
Installing dependencies:
java-11-openjdk-headless x86_64 1:11.0.9.11-0.el8_2 AppStream 40 M
Transaction Summary
========================================================================================================================
Install 2 Packages
Total download size: 40 M
Installed size: 173 M
Downloading Packages:
(1/2): java-11-openjdk-11.0.9.11-0.el8_2.x86_64.rpm 12 MB/s | 251 kB 00:00
(2/2): java-11-openjdk-headless-11.0.9.11-0.el8_2.x86_64.rpm 67 MB/s | 40 MB 00:00
------------------------------------------------------------------------------------------------------------------------
Total 67 MB/s | 40 MB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Running scriptlet: java-11-openjdk-headless-1:11.0.9.11-0.el8_2.x86_64 1/1
Preparing : 1/1
Installing : java-11-openjdk-headless-1:11.0.9.11-0.el8_2.x86_64 1/2
Running scriptlet: java-11-openjdk-headless-1:11.0.9.11-0.el8_2.x86_64 1/2
Installing : java-11-openjdk-1:11.0.9.11-0.el8_2.x86_64 2/2
Running scriptlet: java-11-openjdk-1:11.0.9.11-0.el8_2.x86_64 2/2
Verifying : java-11-openjdk-1:11.0.9.11-0.el8_2.x86_64 1/2
Verifying : java-11-openjdk-headless-1:11.0.9.11-0.el8_2.x86_64 2/2
Installed products updated.
Installed:
java-11-openjdk-1:11.0.9.11-0.el8_2.x86_64 java-11-openjdk-headless-1:11.0.9.11-0.el8_2.x86_64
Complete!
[root@kafka ~]#
第三步:CentOS 8上安裝Apache Kafka服務器
Apache Kafka是根據Apache License 2.0發行的,因此您可以從官方網站下載Kafka軟體,

從此網頁復制所需版本的Apache Kafka軟體的URL,
使用復制的URL和wget命令可直接從Linux命令列下載Apache Kafka軟體,
[root@kafka-01 ~]# cd /tmp
[root@kafka tmp]# wget https://downloads.apache.org/kafka/2.6.0/kafka_2.13-2.6.0.tgz
--2020-12-22 23:35:58-- https://downloads.apache.org/kafka/2.6.0/kafka_2.13-2.6.0.tgz
Connecting to 192.168.6.175:3128... connected.
Proxy request sent, awaiting response... 200 OK
使用tar命令提取下載的安裝包 ,
[root@kafka tmp]# tar xzf kafka_2.13-2.6.0.tgz
將提取的檔案移動到/opt/kafka目錄,
[root@kafka tmp]# mv kafka_2.13-2.6.0 /opt/kafka
當前版本的Apache Kafka需要Zookeeper服務才能進行分布式配置,但是,在Kafka檔案中提到“很快,Apache Kafka將不再需要ZooKeeper,”
但是目前,您必須先配置Apache Zookeeper服務,然后再配置Kafka服務器,
Zookeeper二進制腳本隨Apache Kafka設定檔案一起提供,您可以使用它來配置ZooKeeper服務器,
為Apache Zookeeper創建一個系統服務單元,
[root@kafka tmp]# cd /opt/kafka/
[root@kafka kafka]#
[root@kafka kafka]# vi /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/bin/bash /opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
ExecStop=/usr/bin/bash /opt/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
同樣,為Apache Kafka服務創建一個systemd單元,
[root@kafka kafka]# vi /etc/systemd/system/kafka.service
在其中添加以下指令,
[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/bin/bash /opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/usr/bin/bash /opt/kafka/bin/kafka-server-stop.sh
[Install]
WantedBy=multi-user.target
啟用并啟動Apache Zookeeper和Kafka服務,
[root@kafka kafka]# systemctl daemon-reload
[root@kafka kafka]# systemctl enable --now zookeeper.service
Created symlink /etc/systemd/system/multi-user.target.wants/zookeeper.service → /etc/systemd/system/zookeeper.service.
[root@kafka kafka]# systemctl enable --now kafka.service
Created symlink /etc/systemd/system/multi-user.target.wants/kafka.service → /etc/systemd/system/kafka.service.
驗證Apache Kafka服務的狀態,
[root@kafka kafka]# systemctl status kafka.service
● kafka.service - Apache Kafka Server
Loaded: loaded (/etc/systemd/system/kafka.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2020-12-22 23:55:42 CST; 9s ago
Docs: http://kafka.apache.org/documentation.html
Main PID: 82192 (java)
Tasks: 68 (limit: 49642)

第五步:Apache Kafka Server中創建主題
在Apache Kafka服務器中創建一個主題,
[root@kafka kafka]# /opt/kafka/bin/kafka-topics.sh --create --topic lianglab --bootstrap-server localhost:9092
Created topic lianglab.
要查看該主題的詳細資訊,可以在Linux命令列中使用run following腳本,
[root@kafka kafka]# /opt/kafka/bin/kafka-topics.sh --describe --topic lianglab --bootstrap-server localhost:9092
Topic: lianglab PartitionCount: 1 ReplicationFactor: 1 Configs: segment.bytes=1073741824
Topic: lianglab Partition: 0 Leader: 0 Replicas: 0 Isr: 0
在您的主題中添加一些示例事件,
[root@kafka kafka]# /opt/kafka/bin/kafka-console-producer.sh --topic lianglab --bootstrap-server localhost:9092
>This is the First event.
>This is the Second event.
>This is the Third event.
>^C[root@kafka-01 kafka]#
要查看插入到主題中的所有事件,可以在Linux命令列中執行以下腳本,
[root@kafka kafka]# /opt/kafka/bin/kafka-console-consumer.sh --topic lianglab --from-beginning --bootstrap-server localhost:9092
This is the First event.
This is the Second event.
This is the Third event.
^CProcessed a total of 3 messages

Apache Kafka服務器已安裝在Linux服務器上并可以使用,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/238856.html
標籤:Linux
上一篇:小白求助
