Apache Kafka je softwarová aplikace pro zpracování datových proudů a zprostředkovatele zpráv s otevřeným zdrojovým kódem, která vám umožňuje zpracovávat datové proudy prostřednictvím distribuované streamovací platformy. Funguje jako systém zpráv mezi odesílatelem a příjemcem. Apache Kafka je založen na distribuované architektuře, takže poskytuje vysokou odolnost proti chybám a možnosti škálovatelnosti. Původně byl vyvinut LinkedIn, ale nyní je to projekt Apache Software Foundation. Apache Kafka poskytuje rozhraní pro čtení a zápis dat do clusterů Kafka nebo pro import a export dat do a ze systémů třetích stran.
V tomto příspěvku vysvětlíme, jak nainstalovat Apache Kafka na Rocky Linux 8.
Předpoklady
- Server se systémem RockyLinux 8 na cloudové platformě Atlantic.Net
- Heslo uživatele root nakonfigurované na vašem serveru
Krok 1 – Vytvořte cloudový server Atlantic.Net
Nejprve se přihlaste ke svému cloudovému serveru Atlantic.Net. Vytvořte nový server a jako operační systém vyberte Rocky Linux 8 s alespoň 2 GB RAM. Připojte se ke svému cloudovému serveru přes SSH a přihlaste se pomocí přihlašovacích údajů zvýrazněných v horní části stránky.
Jakmile se přihlásíte na svůj server, spusťte následující příkaz a aktualizujte svůj základní systém nejnovějšími dostupnými balíčky.
aktualizace dnf -y
Krok 2 – Instalace Java
Apache Kafka je aplikace založená na Javě, takže Java musí být nainstalována na vašem serveru. Pokud není nainstalován, můžete jej nainstalovat pomocí následujícího příkazu:
dnf install java-11-openjdk-devel -y
Jakmile je Java nainstalována, ověřte instalaci Java pomocí následujícího příkazu:
java --version
Verzi Java získáte v následujícím výstupu:
openjdk 11.0.13 2021-10-19 LTSOpenJDK Runtime Environment 18.9 (sestavení 11.0.13+8-LTS)OpenJDK 64bitový server VM 18.9 (sestavení 11.0.13+8-LTS), smíšený režim pre>Krok 3 – Nainstalujte Apache Kafka na Rocky Linux 8
Nejprve přejděte na oficiální web Apache a stáhněte si nejnovější verzi Apache Kafka pomocí příkazu wget:
wget https://dlcdn.apache.org/kafka/3.0.0/kafka_2.13-3.0.0.tgzPo dokončení stahování rozbalte stažený soubor pomocí následujícího příkazu:
tar -xvzf kafka_2.13-3.0.0.tgzJakmile je stažený soubor rozbalen, přesuňte extrahovaný adresář do adresáře /usr/local:
mv kafka_2.13-3.0.0/ /usr/local/kafkaJakmile budete hotovi, můžete přejít k dalšímu kroku.
Krok 4 – Vytvořte soubor Systemd Service pro Zookeeper a Kafka
Pro produkční prostředí se doporučuje vytvořit soubor služby systemd, aby bylo možné na pozadí spouštět Zookeeper i Kafka.
Nejprve vytvořte soubor služby systemd pro Zookeeper pomocí následujícího příkazu:
nano /etc/systemd/system/zookeeper.servicePřidejte následující řádky:
[Unit]Description=Apache Zookeeper serverDocumentation=http://zookeeper.apache.orgRequires=network.target remote-fs.targetAfter=network.target remote-fs.target[Service]Type=simpleExecStart=/usr/bin /bash /usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.propertiesExecStop=/usr/bin/bash /usr/local/kafka/bin/zookeeper-server- stop.shRestart=on-abnormal[Install]WantedBy=multi-user.targetUložte a zavřete soubor a poté vytvořte soubor systemd service pro Kafka pomocí následujícího příkazu:
nano /etc/systemd/system/kafka.servicePřidejte následující řádky:
[Unit]Description=Apache Kafka ServerDocumentation=http://kafka.apache.org/documentation.htmlRequires=zookeeper.service[Service]Type=simpleEnvironment="JAVA_HOME=/usr/lib/jvm/jre-11- openjdk"ExecStart=/usr/bin/bash /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.propertiesExecStop=/usr/bin/bash /usr/local/ kafka/bin/kafka-server-stop.sh[Install]WantedBy=multi-user.targetUložte a zavřete soubor a poté znovu načtěte démona systemd pomocí následujícího příkazu:
systemctl daemon-reloadDále spusťte služby Zookeeper i Kafka a povolte jim spuštění při restartu systému:
systemctl spustit zookeepersystemctl spustit kafkasystemctl povolit zookeepersystemctl povolit kafkaObě služby můžete také zkontrolovat pomocí následujícího příkazu:
stav systemctl zookeeper kafkaZískáte následující výstup:
● zookeeper.service – server Apache Zookeeper Načteno:načteno (/etc/systemd/system/zookeeper.service; zakázáno; přednastaveno dodavatelem:zakázáno) Aktivní:aktivní (běží) od pá 2021-10-22 07:51:56 UTC; Před 42 s Dokumenty:http://zookeeper.apache.org Hlavní PID:33802 (java) Úkoly:28 (limit:11411) Paměť:91,4M CGroup:/system.slice/zookeeper.service └─33802 java -Xmx512M -Xmx512M -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCIn>Oct 22 07:51:58 RockyLinux8 bash[33802]:[2021-070:51-262 2021-170:51-262 INFO zookeeper.snapshot.compression.method =CHECKED (org.apache.zookeeper.>Oct 22 07:51:58 RockyLinux8 bash[33802]:[2021-10-22 07:51:58,676] INFO Snaphotting /tmp0 /zookeeper/version-2/snapshot.0 (org.apache.z>22. října 07:51:58 RockyLinux8 bash[33802]:[2021-10-22 07:51:58,679] INFO Snímek načten za 22 ms, nejvyšší zxid je 0x0, výtah je 1371985504 (o> 22. října 07:51:58 RockyLinux8 bash[33802]:[2021-10-22 07:51:58,679] INFO Snapshoting:0x0/tp-keeper/tmp/shot .0 (org.apache.z>Oct 22 07:51:58 RockyLinux8 bash[33802]:[2021-10-22 07:51:58,683] INFO Snímek pořízen za 3 ms (org.apache.zookeeper.server.ZooKe erServer) Oct 22 07:51:58 RockyLinux8 bash[33802]:[2021-10-22 07:51:58,703] INFO zookeeper.request_throttler.shutdownTimeout =10000 (org.apache.zookee:5555inux:88 bash[33802]:[2021-10-22 07:51:58,741] INFO PrepRequestProcessor (sid:0) spuštěn, reconfigEnabled=false (org.apach>Oct 22 07:51:58 RockyLinux8 bash[33802]:[230202]:10-22 07:51:58,764] INFO Použití checkIntervalMs=60000 maxPerMinute=10000 maxNeverUsedIntervalMs=>Oct 22 07:51:58 RockyLinux8 bash[33802]:[2021-5eper:51INFO:[2021-5eper:51INFO] . (org.apache.zookeeper.audit.ZKAuditProvid>22. října 07:52:12 RockyLinux8 bash[33802]:[2021-10-22 07:52:12,102] INFO Vytváření nového souboru protokolu:log.1 (org.apache. zookeeper.server.persistence.>● kafka.service - Apache Kafka Server Načteno:načteno (/etc/systemd/system/kafka.service; zakázáno; přednastaveno dodavatelem:zakázáno) Aktivní:aktivní (běží) od pá 2021-10-22 07:52:09 UTC; před 29s Dokumenty:http://kafka.apache.org/documentation.html Hlavní PID:34147 (java) Úkoly:69 (limit:11411) Paměť:331,6M CGroup:/system.slice/ kafka.service └─34147 /usr/lib/jvm/jre-11-openjdk/bin/java -Xmx1G -Xms1G -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeap2225:Oct 14 RockyLinux8 bash[34147]:[2021-10-22 07:52:14,881] INFO [/config/changes-event-process-thread]:Spuštění (kafka.common.ZkNodeC>Oct 22 07:52:14 bash [34147]:[2021-10-22 07:52:14,899] INFO [SocketServer listenerType=ZK_BROKER, nodeId=0] Spouštění soketového serveru>22. října 07:52:14 RockyLinux8 bash [34147]:[2021-10-22 07:52:14,981] INFO [SocketServer listenerType=ZK_BROKER, nodeId=0] Spuštěn datové roviny acc>22. října 07:52:14 RockyLinux8 bash]:324147 [310147 -22 07:52:14,988] INFO [SocketServer listenerType=ZK_BROKER, nodeId=0] Spuštěn soketový server>22. října 07:52:15 RockyLinux8 bash[34147]:[2021-10-22 0021-10-22 0021-10-22 0021-10-22 0021-10-22 0021-10-22 0021-10-22 0021-10-22 0157:56:Kafka verze:3.0.0 (org.apache.kafka.common.utils.AppInfoParser) 22. října 07:52:15 RockyLinux8 bash[34147]:[2021-10-22 07:52:15,069] INFO Kafka commitId:53418c .apache.kafka.common.utils.AppInf>Oct 22 07:52:15 RockyLinux8 bash[34147]:[2021-10-22 07:52:15,069] INFO Kafka startTimeMs:1634889134.98 (orgfkaache.8 pre>Krok 5 – Vytvořte téma na Kafkovi
Chcete-li otestovat Apache Kafka, budete muset na serveru vytvořit alespoň jedno téma.
Změňte adresář na Apache Kafka a vytvořte testovací téma s názvem topic1 pomocí následujícího příkazu:
cd /usr/local/kafka/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic topic1Vytvořené téma nyní můžete ověřit pomocí následujícího příkazu:
bin/kafka-topics.sh --list --bootstrap-server localhost:9092Získáte následující výstup:
topic1Kafka poskytuje dvě API:Producer a Consumer. Výrobce je zodpovědný za vytváření událostí a spotřebitel je zobrazuje na obrazovce:
Nejprve spusťte následující příkaz k vytvoření události s názvem event1 pomocí následujícího příkazu:
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic event1Zadejte nějaký text, který chcete streamovat a zobrazovat na spotřebiteli.
>Ahoj, toto je moje první událostUkázkový výstup:
[2021-10-22 07:58:05,318] WARN [Producer clientId=console-producer] Chyba při načítání metadat s ID korelace 3 :{event1=LEADER_NOT_AVAILABLE} (org.apache.NetworkClient)<. /před>Otevřete jiný terminál a spusťte následující příkaz pro zobrazení vygenerovaných dat událostí v reálném čase:
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic event1 --from-beginningZískáte následující výstup:
Ahoj, toto je moje první událostZávěr
Ve výše uvedené příručce jste se naučili, jak nainstalovat Apache Kafka na Rocky Linux 8. Další informace najdete na stránce dokumentace Apache Kafka. Začněte s Apache Kafka na VPS hostingu od Atlantic.Net!
Jak nainstalovat a spravovat verze Java na Rocky Linux 8 Jak nainstalovat distribuci Anaconda Python na Rocky Linux 8Linux