Apache Kafka ist eine verteilte Streaming-Plattform. Es ist nützlich, um Echtzeit-Streaming-Datenpipelines zu erstellen, um Daten zwischen den Systemen oder Anwendungen abzurufen. Eine weitere nützliche Funktion sind Echtzeit-Streaming-Anwendungen, die Datenströme umwandeln oder auf einen Datenstrom reagieren können.
Dieses Tutorial hilft Ihnen bei der Installation von Apache Kafka CentOS 8- oder RHEL 8-Linux-Systemen.
Voraussetzungen
- Für das neu installierte System wird empfohlen, der anfänglichen Servereinrichtung zu folgen.
- Shell-Zugriff auf das CentOS 8-System mit sudo-Berechtigungskonto.
Schritt 1 – Java installieren
Sie müssen Java auf Ihrem System installiert haben, um Apache Kafka auszuführen. Sie können OpenJDK auf Ihrem Computer installieren, indem Sie den folgenden Befehl ausführen. Installieren Sie außerdem einige andere erforderliche Tools.
sudo dnf install java-11-openjdk wget vim
Schritt 2 – Laden Sie Apache Kafka herunter
Laden Sie die Apache Kafka-Binärdateien von der offiziellen Download-Website herunter. Sie können auch jeden Spiegel in der Nähe zum Herunterladen auswählen.
wget http://www-us.apache.org/dist/kafka/2.7.0/kafka_2.13-2.7.0.tgz
Extrahieren Sie dann die Archivdatei
tar xzf kafka_2.13-2.7.0.tgz mv kafka_2.13-2.7.0 /usr/local/kafka
Schritt 3 – Kafka Systemd Unit-Dateien einrichten
CentOS 8 verwendet systemd, um seinen Dienststatus zu verwalten. Wir müssen also systemd-Unit-Dateien für den Zookeeper- und Kafka-Dienst erstellen. Das hilft uns, Kafka-Dienste zu verwalten und zu starten/stoppen.
Erstellen Sie zuerst eine systemd-Unit-Datei für Zookeeper mit dem folgenden Befehl:
vim /etc/systemd/system/zookeeper.service
Fügen Sie unten den Inhalt hinzu:
[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
Speichern Sie die Datei und schließen Sie sie.
Als Nächstes erstellen Sie mit dem folgenden Befehl eine Kafka-Systemd-Unit-Datei:
vim /etc/systemd/system/kafka.service
Fügen Sie den folgenden Inhalt hinzu. Achten Sie darauf, das richtige JAVA_HOME einzustellen Pfad gemäß dem auf Ihrem System installierten Java.
[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
Speichern Sie die Datei und schließen Sie sie.
Laden Sie den systemd-Daemon neu, um die Änderungen zu übernehmen.
systemctl daemon-reload
Schritt 4 – Kafka-Server starten
Kafka benötigte ZooKeeper, also starten Sie zuerst einen ZooKeeper-Server auf Ihrem System. Sie können das mit Kafka verfügbare Skript verwenden, um eine Einzelknoten-ZooKeeper-Instanz zu starten.
sudo systemctl start zookeeper
Starten Sie nun den Kafka-Server und sehen Sie sich den laufenden Status an:
sudo systemctl start kafka sudo systemctl status kafka
Alles erledigt. Sie haben Kafka erfolgreich auf Ihrem CentOS 8 installiert. Der nächste Teil dieses Tutorials hilft Ihnen, Themen im Kafka-Cluster zu erstellen und mit dem Kafka-Erzeuger- und Verbraucherdienst zu arbeiten.
Schritt 5 – Erstellen von Themen in Apache Kafka
Apache Kafka bietet mehrere Shell-Skripte, um daran zu arbeiten. Erstellen Sie zunächst ein Thema mit dem Namen „testTopic“. ” mit einer einzigen Partition mit einer einzigen Replik:
cd /usr/local/kafka bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testTopic Created topic testTopic.
Der Replikationsfaktor beschreibt, wie viele Kopien von Daten erstellt werden. Da wir mit einer einzelnen Instanz arbeiten, belassen Sie diesen Wert bei 1.
Legen Sie die Partitionsoptionen als die Anzahl der Broker fest, auf die Ihre Daten aufgeteilt werden sollen. Da wir mit einem einzelnen Broker arbeiten, belassen Sie diesen Wert bei 1.
Sie können mehrere Themen erstellen, indem Sie denselben Befehl wie oben ausführen. Danach können Sie die erstellten Themen auf Kafka mit dem folgenden Befehl anzeigen:
bin/kafka-topics.sh --list --zookeeper localhost:2181 testTopic KafkaonCentOS8 TutorialKafkaInstallCentOS8
Anstatt Themen manuell zu erstellen, können Sie alternativ Ihre Broker auch so konfigurieren, dass Themen automatisch erstellt werden, wenn ein nicht vorhandenes Thema veröffentlicht wird.
Schritt 6 – Apache Kafka Producer und Consumer
Der „Produzent“ ist der Prozess, der dafür verantwortlich ist, Daten in unser Kafka einzufügen. Kafka wird mit einem Befehlszeilenclient geliefert, der Eingaben aus einer Datei oder von der Standardeingabe entgegennimmt und als Nachrichten an den Kafka-Cluster sendet. Das Standard-Kafka sendet jede Zeile als separate Nachricht.
Lassen Sie uns den Producer ausführen und dann einige Nachrichten in die Konsole eingeben, um sie an den Server zu senden.
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testTopic >Welcome to kafka >This is my first topic >
Öffnen Sie nun ein neues Terminal, um den Verbraucherprozess von Apache Kafka auszuführen. Kafka stellt auch einen Befehlszeilenkonsumenten bereit, um Daten aus dem Kafka-Cluster zu lesen und Meldungen auf der Standardausgabe anzuzeigen.
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testTopic --from-beginning Welcome to kafka This is my first topic
Die Option –from-beginning wird verwendet, um Nachrichten ab dem Anfang des ausgewählten Themas zu lesen. Sie können diese Option überspringen, um nur die neuesten Nachrichten zu lesen.
Führen Sie beispielsweise den Kafka-Producer und -Consumer in separaten Terminals aus. Geben Sie einfach einen Text auf diesem Producer-Terminal ein. sie wird sofort auf dem Endgerät des Verbrauchers sichtbar. Sehen Sie sich den folgenden Screenshot des Kafka-Produzenten und -Konsumenten in Arbeit an:
Schlussfolgerung
Sie haben den Kafka-Dienst erfolgreich auf dem CentOS 8-Linux-Computer installiert und konfiguriert.