Ako nainštalovať Apache Kafka na Ubuntu 22.04


Tento návod existuje pre tieto verzie OS

  • Ubuntu 22.04 (Jammy Jellyfish)
  • Ubuntu 18.04 (Bionic Beaver)

Na tejto stránke

  1. Predpoklady
  2. Inštalácia Java OpenJDK
  3. Inštalácia Apache Kafka
  4. Nastavenie Apache Kafka ako služby
  5. Základná prevádzka Apache Kafka
  6. Importujte/exportujte svoje údaje ako stream pomocou doplnku Kafka Connect
  7. Záver

Apache Kafka je distribuované úložisko údajov na spracovanie streamovaných údajov v reálnom čase. je vyvinutý spoločnosťou Apache Software Foundation a napísaný v jazyku Java a Scala. Apache Kafka sa používa na vytváranie streamingových dátových kanálov v reálnom čase a aplikácií, ktoré sa prispôsobujú dátovému toku, najmä pre podnikové aplikácie a kritické aplikácie. Je to jedna z najpopulárnejších platforiem toku údajov, ktorú používajú tisíce spoločností na vysokovýkonné dátové kanály, analýzu streamovania a integráciu údajov.

Apache Kafka kombinuje odosielanie správ, ukladanie a spracovanie streamov na jednom mieste. Umožnite používateľom nastaviť vysoko výkonný a výkonný dátový tok na zhromažďovanie, spracovanie a streamovanie dát v reálnom čase. Používa sa v moderných distribuovaných aplikáciách so schopnosťou škálovania zvládnuť miliardy streamovaných udalostí.

V tomto návode nainštalujete Apache Kafka na server ubuntu 22.04. Dozviete sa, ako manuálne nainštalovať Apache Kafka z binárnych balíčkov, čo zahŕňa základnú konfiguráciu pre Apache na spustenie ako službu a základnú operáciu pomocou Apache Kafka.

Predpoklady

Na dokončenie tohto návodu budete potrebovať nasledujúce požiadavky:

  • Server Ubuntu 22.04 s najmenej 2 GB alebo 4 GB pamäte.
  • Používateľ bez oprávnenia root s oprávneniami typu root/správca.

Inštalácia Java OpenJDK

Apache Kafka je sprostredkovateľ spracovania streamov a správ napísaný v Scala a Java. Ak chcete nainštalovať Kafka, nainštalujete si Java OpenJDK do svojho systému Ubuntu V čase písania tohto článku si najnovšia verzia Kafka v3.2 vyžadovala aspoň Java OpenJDK v11, ktorá je štandardne dostupná v úložisku Ubuntu.

Ak chcete začať, spustite príkaz apt nižšie, aby ste aktualizovali úložisko Ubuntu a obnovili index balíkov.

sudo apt update

Nainštalujte Java OpenJDK 11 pomocou príkazu apt nižšie. Zadajte Y na potvrdenie inštalácie a stlačte ENTER, inštalácia sa spustí.

sudo apt install default-jdk

Java OpenJDK je teraz nainštalovaná vo vašom systéme Ubuntu. Na kontrolu a overenie verzie Java použite nasledujúci príkaz java. Uvidíte nainštalovanú java OpenJDK v11.

java version

Inštalácia Apache Kafka

Po nainštalovaní Java OpenJDK spustíte inštaláciu Apache Kafka manuálne pomocou binárneho balíka. V čase písania tohto článku je najnovšia verzia Apache Kafka v3.2. Na jeho inštaláciu si vytvoríte nového používateľa systému a stiahnete si binárny balík Kafka.

Spustite nasledujúci príkaz a vytvorte nového používateľa systému s názvom "kafka". Tento používateľ bude mať predvolený domovský adresár "/opt/kafka" a zakáže prístup k shellu.

sudo useradd -r -d /opt/kafka -s /usr/sbin/nologin kafka

Stiahnite si binárny balík Apache Kafka pomocou príkazu curl nižšie. Mali by ste získať balík Apache Kafka "kafka_2.13-3.2.0.tgz".

sudo curl -fsSLo kafka.tgz https://dlcdn.apache.org/kafka/3.2.0/kafka_2.13-3.2.0.tgz

Po dokončení sťahovania rozbaľte súbor "kafka_2.13-3.2.0.tgz" pomocou príkazu tar. Potom presuňte extrahovaný adresár do "/opt/kafka".

tar -xzf kafka.tgz
sudo mv kafka_2.13-3.2.0 /opt/kafka

Teraz zmeňte vlastníctvo inštalačného adresára Kafka "/opt/kafka" na používateľa "kafka".

sudo chown -R kafka:kafka /opt/kafka

Potom vytvorte a spustite nasledujúci príkaz na vytvorenie nového adresára "logs" na ukladanie súborov denníka Apache kafka. Potom upravte konfiguračný súbor Kafka "/opt/kafka/config/server.properties" pomocou nano editora.

sudo -u kafka mkdir -p /opt/kafka/logs
sudo -u kafka nano /opt/kafka/config/server.properties

Zmeňte predvolené umiestnenie protokolov Apache Kafka na adresár „/opt/kafka/logs“.

# logs configuration for Apache Kafka
log.dirs=/opt/kafka/logs

Po dokončení uložte a zatvorte súbor.

Nastavenie Apache Kafka ako služby

V tomto bode máte základnú konfiguráciu pre Apache Kafka. Ako teraz spustiť Apache Kafka vo vašom systéme? Odporúčaný spôsob je spustiť Apache Kafka ako systémovú službu. To vám umožní spustiť, zastaviť a reštartovať Apache Kafka pomocou jediného príkazového riadku "systemctl".

Pre nastavenie služby Apache Kafka je potrebné najskôr nastaviť službu Zookeeper. Apache Zookeeper sa tu používa na centralizáciu služieb a udržiavanie voľby kontrolóra, konfigurácie tém, zoznamov riadenia prístupu (ACL) a členstva (pre klaster Kafka).

Zookeeper je štandardne zahrnutý na Apache Kafka. Nastavíte súbor služby pre Zookeeper a potom vytvoríte ďalší súbor služby pre Kafku.

Spustite nasledujúci príkaz a vytvorte nový súbor služby systemd "/etc/systemd/system/zookeeper.service" pre Zookeeper.

sudo nano /etc/systemd/system/zookeeper.service

Pridajte do súboru nasledujúcu konfiguráciu.

[Unit]
Requires=network.target remote-fs.target
After=network.target remote-fs.target
[Service]
Type=simple
User=kafka
ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target

Po dokončení uložte a zatvorte súbor.

Potom vytvorte nový súbor služby pre Apache Kafka "/etc/systemd/system/kafka.service" pomocou nižšie uvedeného príkazu.

sudo nano /etc/systemd/system/kafka.service

Pridajte do súboru nasledujúcu konfiguráciu. Táto služba Kafka bude spustená iba vtedy, ak je spustená služba Zookeeper.

[Unit]
Requires=zookeeper.service
After=zookeeper.service
[Service]
Type=simple
User=kafka
ExecStart=/bin/sh -c '/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties > /opt/kafka/logs/start-kafka.log 2>&1'
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target

Po dokončení uložte a zatvorte súbor.

Teraz znova načítajte správcu systemd pomocou nižšie uvedeného príkazu. Tento príkaz použije nové služby systemd, ktoré ste práve vytvorili.

sudo systemctl daemon-reload

Teraz spustite a povoľte službu Zookeeper pomocou nižšie uvedeného príkazu.

sudo systemctl enable zookeeper
sudo systemctl start zookeeper

Potom spustite a povoľte službu Apache Kafka pomocou nasledujúceho príkazu.

sudo systemctl enable kafka
sudo systemctl start kafka

Nakoniec skontrolujte a overte služby Zookeeper a Apache Kafka pomocou príkazu nižšie.

sudo systemctl status zookeeper
sudo systemctl status kafka

V nasledujúcom výstupe môžete vidieť, že služba Zookeeper je povolená a bude sa spúšťať automaticky pri štarte systému. A aktuálny stav služby Zookeeper je spustený.

Služba Apache Kafka je tiež povolená a bude sa spúšťať automaticky pri štarte systému. A teraz to „beží“.

Základná prevádzka Apache Kafka

Dokončili ste základnú inštaláciu Apache Kafka a je spustená. Teraz sa naučíte základné ovládanie Apache Kafka z príkazového riadku.

Všetky nástroje príkazového riadka Apache Kafka sú dostupné v adresári "/opt/kafka/bin".

Ak chcete vytvoriť novú tému Kafka, použite skript "kafka-topics.sh" ako je uvedené nižšie. V tomto príklade vytvárame novú tému Kafka s názvom "TestTopic" s 1 replikáciou a oddielom. A mali by ste dostať výstup ako „Vytvorená téma TestTopic“.

sudo -u kafka /opt/kafka/bin/kafka-topics.sh \
--create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic TestTopic

Ak chcete overiť zoznamy dostupných tém na serveri Kafka, spustite nasledujúci príkaz. A mali by ste vidieť „TestTopic“, ktoré ste práve vytvorili, a je k dispozícii na serveri Kafka.

sudo -u kafka /opt/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092

Vytvorili ste tému Kafka, teraz môžete skúsiť zapisovať a streamovať dáta na Apache Kafka pomocou štandardného príkazového riadku „kafka-console-producer.sh“ a „kafka-console -consumer.sh“.

Skript "kafka-console-producer.sh" je nástroj príkazového riadka, ktorý možno použiť na zapisovanie údajov na tému Kafka. A skript "kafka-console-consumer.sh" slúži na streamovanie dát z terminálu.

V aktuálnej relácii shell spustite nasledujúci príkaz na spustenie nástroja Kafka Console Producer. Na to budete musieť zadať aj tému Kafka, v tomto príklade použijeme „TestTopic“.

sudo -u kafka /opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic TestTopic

Potom otvorte ďalší shell alebo terminál a pripojte sa k serveru Apache Kafka. Potom spustite nasledujúci príkaz na spustenie Apache Kafka Consumer. Tu určite špecifikujte Kafkovu tému.

sudo -u kafka /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic TestTopic --from-beginning

Teraz môžete písať ľubovoľné správy od Kafka Console Producer a správy sa automaticky zobrazia a budú streamované na Kafka Console Consumer.

Teraz stačí stlačiť "Ctrl+c" a opustiť producenta a spotrebiteľa konzoly Kafka.

Ďalšou základnou Kafkovou operáciou, ktorú by ste tu mali vedieť, je vymazanie témy na Kafkovi. A to sa dá urobiť aj pomocou nástroja príkazového riadka "kafka-topics.sh".

Ak chcete odstrániť tému "TestTopic", môžete použiť nasledujúci príkaz. Teraz bude „TestTopic“ z vášho servera Kafka odstránená.

sudo -u kafka /opt/kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic TestTopic

Importujte/exportujte svoje údaje ako stream pomocou doplnku Kafka Connect

Musíte sa naučiť základné fungovanie Apache Kafka vytváraním tém a streamovaním správ pomocou Kafka Console Producer and Consumer. Teraz sa dozviete, ako streamovať správy zo súboru cez plugin „Kafka Connect“. Tento plugin je dostupný v predvolenej inštalácii Kafka, predvolené pluginy pre Kafku sú dostupné v adresári "/opt/kafka/libs".

Upravte konfiguračný súbor "/opt/kafka/config/connect-standalone.properties" pomocou nano editora.

sudo -u kafka nano /opt/kafka/config/connect-standalone.properties

Pridajte do súboru nasledujúcu konfiguráciu. Toto povolí doplnok Kafka Connect, ktorý je dostupný v adresári "/opt/kafka/libs".

plugin.path=libs/connect-file-3.2.0.jar

Po dokončení uložte a zatvorte súbor.

Ďalej vytvorte nový vzorový súbor, ktorý importujete a streamujete do Kafky. Na základe konfiguračných súborov Apache Kafka musíte vytvoriť súbor "test.txt" v inštalačnom adresári Kafka "/opt/kafka".

Spustite príkaz uvedený nižšie a vytvorte nový súbor "/opt/kafka/test.txt".

sudo -u kafka echo -e "Test message from file\nTest using Kafka connect from file" > /opt/kafka/test.txt

Z pracovného adresára "/opt/kafka" spustite nasledujúci príkaz na spustenie konektora kafka v samostatnom režime.

Tiež sme tu pridali ďalšie tri konfiguračné súbory ako parametre. Všetky tieto súbory obsahujú základnú konfiguráciu, na ktorej budú dáta uložené, na akú tému a ktorý súbor bude spracovaný. Predvolená hodnota týchto konfigurácií je, že údaje budú dostupné v téme "connect-test" so zdrojovým súborom "test.txt", ktorý ste práve vytvorili.

Uvidíte veľa výstupných správ od Kafku.

cd /opt/kafka
sudo -u kafka /opt/kafka/bin/connect-standalone.sh config/connect-standalone.properties config/connect-file-source.properties config/connect-file-sink.properties

Teraz otvorte ďalší shell/reláciu terminálu a spustite nasledujúci príkaz na spustenie spotrebiteľa konzoly Kafka. V tomto príklade budú dátové toky k dispozícii na tému „connect-test“.

Teraz uvidíte, že údaje o súbore "test.txt" sú streamované vo vašom aktuálnom prostredí Console Consumer.

sudo -u kafka /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic connect-test --from-beginning

Ak sa pokúsite pridať ďalšiu správu do súboru „test.txt“, uvidíte, že správa bude automaticky streamovaná na spotrebiteľovi konzoly Kafka.

sudo -u kafka echo "Another test message from file test.txt" >> test.txt

Záver

V tomto návode ste sa naučili, ako nainštalovať Apache Kafka na spracovanie streamov a sprostredkovateľa správ v systéme Ubuntu 22.04. Naučili ste sa tiež základnú konfiguráciu Kafka na systéme Ubuntu. Okrem toho ste sa tiež naučili základné operácie pomocou Apache Kafka Producer and Consumer. A na konci ste sa tiež naučili, ako streamovať správy alebo udalosti zo súboru do Apache Kafka.