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 Apache Kafka na systémy Debian 10, Debian 9 a Debian 8.
Krok 1 – Instalace Java
Apache Kafka ke svému běhu vyžadoval Javu. V systému musíte mít nainstalovanou javu. Proveďte níže uvedený příkaz a nainstalujte do svého systému výchozí OpenJDK z oficiálních PPA.
sudo apt update sudo apt install default-jdk
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 – Vytvořte soubory systémové jednotky
Dále vytvořte soubory systemd unit pro službu Zookeeper a Kafka. To pomůže spravovat služby Kafka tak, aby se spouštěly/zastavovaly pomocí příkazu systemctl.
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 obsah:
[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/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties ExecStop=/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/java-1.11.0-openjdk-amd64" ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh [Install] WantedBy=multi-user.target
Uložte soubor a zavřete.
Chcete-li použít nové 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. Instalace Kafky byla úspěšně dokončena. Část tohoto návodu vám pomůže pracovat se serverem Kafka.
Krok 5 – Vytvořte téma v Kafkovi
Kafka poskytuje několik předpřipravených skriptů shellu, které na něm pracují. 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 TecAdminTutorial1 TecAdminTutorial2
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 – Odešlete zprávy Kafkovi
„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 konzoly, které chcete odeslat na server.
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testTopic >Welcome to kafka >This is my first topic >
Tento příkaz můžete ukončit nebo nechat tento terminál spuštěný pro další testování. Nyní v dalším kroku otevřete nový terminál pro spotřebitelský proces Kafka.
Krok 7 – Použití Kafka Consumer
Kafka má také spotřebitele 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
Nyní, pokud stále máte spuštěný producent Kafka (krok #6) v jiném terminálu. 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 Debian Linux.