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
- Predpoklady
- Inštalácia Java OpenJDK
- Inštalácia Apache Kafka
- Nastavenie Apache Kafka ako služby
- Základná prevádzka Apache Kafka
- Importujte/exportujte svoje údaje ako stream pomocou doplnku Kafka Connect
- 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.