Apache Kafka je distribuovaná streamovací platforma. Je to užitečné pro vytváření datových kanálů pro streamování v reálném čase pro získávání dat mezi systémy nebo aplikacemi. Další užitečnou funkcí jsou aplikace pro streamování v reálném čase, které dokážou transformovat toky dat nebo reagovat na tok dat.
Tento tutoriál vám pomůže nainstalovat systémy Apache Kafka CentOS 8 nebo RHEL 8 Linux.
Předpoklady
- U nově nainstalovaného systému se doporučuje provést počáteční nastavení serveru.
- Shellový přístup k systému CentOS 8 s účtem s právy sudo.
Krok 1 – Instalace Java
Ke spuštění Apache Kafka musíte mít na svém systému nainstalovanou Javu. OpenJDK můžete nainstalovat na svůj počítač provedením následujícího příkazu. Nainstalujte také některé další požadované nástroje.
sudo dnf install java-11-openjdk wget vim
Krok 2 – Stáhněte si Apache Kafka
Stáhněte si binární soubory Apache Kafka z jeho oficiální webové stránky pro stahování. Můžete si také vybrat libovolné blízké zrcadlo ke stažení.
wget http://www-us.apache.org/dist/kafka/2.7.0/kafka_2.13-2.7.0.tgz
Poté rozbalte archivní soubor
tar xzf kafka_2.13-2.7.0.tgz mv kafka_2.13-2.7.0 /usr/local/kafka
Krok 3 – Nastavení souborů Kafka Systemd Unit
CentOS 8 používá systemd ke správě stavu svých služeb. Potřebujeme tedy vytvořit soubory systemd unit pro službu Zookeeper a Kafka. Což nám pomáhá spravovat služby Kafka tak, aby se spouštěly/zastavovaly.
Nejprve vytvořte soubor systemd unit pro Zookeeper pomocí níže uvedeného příkazu:
vim /etc/systemd/system/zookeeper.service
Přidejte níže kontnet:
[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 /usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties ExecStop=/usr/bin/bash /usr/local/kafka/bin/zookeeper-server-stop.sh Restart=on-abnormal [Install] WantedBy=multi-user.target
Uložte soubor a zavřete jej.
Dále vytvořte soubor jednotky Kafka systemd pomocí následujícího příkazu:
vim /etc/systemd/system/kafka.service
Přidejte níže uvedený obsah. Ujistěte se, že jste nastavili správnou JAVA_HOME cestu podle Javy nainstalované ve vašem systému.
[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 /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties ExecStop=/usr/bin/bash /usr/local/kafka/bin/kafka-server-stop.sh [Install] WantedBy=multi-user.target
Uložte soubor a zavřete jej.
Chcete-li použít změny, znovu načtěte démona systemd.
systemctl daemon-reload
Krok 4 – Spusťte Kafka Server
Kafka vyžadoval ZooKeeper, takže nejprve spusťte server ZooKeeper ve vašem systému. Ke spuštění instance ZooKeeper s jedním uzlem můžete použít skript dostupný s Kafkou.
sudo systemctl start zookeeper
Nyní spusťte server Kafka a zobrazte aktuální stav:
sudo systemctl start kafka sudo systemctl status kafka
Vše hotovo. Úspěšně jste nainstalovali Kafka na svůj CentOS 8. Další část tohoto tutoriálu vám pomůže vytvořit témata v clusteru Kafka a pracovat se službou pro producenty a zákazníky Kafka.
Krok 5 – Vytváření témat v Apache Kafka
Apache Kafka poskytuje více shell skriptů pro práci na něm. Nejprve vytvořte téma s názvem „testTopic ” s jedním oddílem s jednou replikou:
cd /usr/local/kafka bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testTopic Created topic testTopic.
Replikační faktor popisuje, kolik kopií dat bude vytvořeno. Protože běžíme s jedinou instancí, ponechte tuto hodnotu 1.
Nastavte možnosti oddílů jako počet brokerů, mezi které chcete rozdělit data. Protože provozujeme s jedním brokerem, ponechte tuto hodnotu 1.
Spuštěním stejného příkazu jako výše můžete vytvořit více témat. Poté můžete vidět vytvořená témata na Kafka spuštěním níže uvedeného příkazu:
bin/kafka-topics.sh --list --zookeeper localhost:2181 testTopic KafkaonCentOS8 TutorialKafkaInstallCentOS8
Alternativně můžete místo ručního vytváření témat také nakonfigurovat své brokery tak, aby automaticky vytvářeli témata, když je publikováno neexistující téma.
Krok 6 – Producent a spotřebitel Apache Kafka
„Producent“ je proces zodpovědný za vkládání dat do našeho Kafka. Kafka přichází s klientem příkazového řádku, který přebírá vstup ze souboru nebo ze standardního vstupu a odesílá jej jako zprávy do clusteru Kafka. Výchozí Kafka odešle každý řádek jako samostatnou zprávu.
Spusťte producenta a poté zadejte několik zpráv do konzole, které chcete odeslat na server.
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testTopic >Welcome to kafka >This is my first topic >
Nyní otevřete nový terminál pro spuštění spotřebitelského procesu Apache Kafka. Kafka také poskytuje spotřebiteli příkazového řádku pro čtení dat z clusteru Kafka a zobrazování zpráv na standardní výstup.
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testTopic --from-beginning Welcome to kafka This is my first topic
Volba –from-beginning se používá ke čtení zpráv od začátku zvoleného tématu. Tuto možnost můžete přeskočit a číst pouze nejnovější zprávy.
Například Spusťte výrobce a spotřebitele Kafka v samostatných terminálech. Stačí napsat nějaký text na terminálu výrobce. bude okamžitě vidět na spotřebitelském terminálu. Podívejte se na níže uvedený snímek obrazovky producenta a spotřebitele Kafka v práci:
Závěr
Úspěšně jste nainstalovali a nakonfigurovali službu Kafka na počítači CentOS 8 Linux.