Installation eines Apache Kafka-Clusters auf Debian 12

watch 5m, 51s
views 2

08:48, 30.07.2026

Artikel Inhalt
arrow

  • Kurzanleitung: Einrichtung von Apache Kafka unter Debian 12
  • Grundprinzipien und Elemente der Kafka-Architektur
  • Installation von Apache Kafka unter Debian 12
  • Installation von Java 8+ unter Debian 12
  • Laden Sie die neueste Kafka-Version herunter
  • Entpacken Sie das Kafka-Binärarchiv
  • Starten von Kafka im KRaft-Modus (KRaft)
  • Konfigurieren Sie KRaft für einen Kafka-Cluster
  • Protokollverzeichnis ändern
  • Erstellen Sie eine Kafka-Cluster-ID
  • Kafka-Protokollverzeichnis in das KRaft-Format konvertieren
  • Kafka-Heap-Größe anpassen
  • Starten des Kafka-Brokers
  • Kafka-Broker im Vordergrund starten
  • Kafka-Broker als systemd-Dienst ausführen
  • Themen erstellen, Nachrichten senden und empfangen in Kafka
  • Ein Thema manuell erstellen
  • Verfügbare Kafka-Themen anzeigen
  • Schreiben (Produzieren) und Lesen (Consume) von Nachrichten in Kafka-Themen
  • Kafka-Themen entfernen
  • Einrichten eines Kafka-Clusters mit drei Knoten
  • Verwaltung von Kafka-Clustern über die Benutzeroberfläche

Kurzanleitung: Einrichtung von Apache Kafka unter Debian 12

Apache Kafka ist eine leistungsstarke, verteilte Event-Streaming-Plattform, die für die Verteilung von Nachrichten mit hohem Durchsatz und geringer Latenz entwickelt wurde.

Die Einrichtung von Kafka unter Debian 12 erfordert eine sorgfältige Konfiguration, um ein zuverlässiges und skalierbares Daten-Streaming zu ermöglichen.

Diese Anleitung bietet eine Schritt-für-Schritt-Anleitung zur Installation und Konfiguration eines Apache-Kafka-Clusters unter Debian 12 und hebt dabei wesentliche Schritte und Konfigurationen hervor.

Grundprinzipien und Elemente der Kafka-Architektur

Die Architektur von Kafka basiert auf mehreren Kernkomponenten:

  • Broker: Kafka läuft als Cluster, der aus einem oder mehreren Servern besteht, den sogenannten Brokern, die die Speicherung und Verteilung von Nachrichten verwalten.
  • Topics: Benannte Kategorien, an die Datensätze gesendet und aus denen Datensätze gelesen werden.
  • Producer: Anwendungen, die Datensätze an Kafka-Topics senden.
  • Consumer: Anwendungen, die Datensätze aus Topics lesen.
  • Partitionen: Kafka-Themen, die zur besseren Verteilung auf mehrere Broker in Abschnitte unterteilt sind.
  • Replikation: Jede Partition wird repliziert, wobei eine für Lese- und Schreibanfragen zuständig ist, während andere die Daten replizieren.
  • Streams: Eine Bibliothek zur Stream-Verarbeitung für Echtzeit-Streaming-Anwendungen und Microservices.
  • ZooKeeper (optional): Wurde früher für die Metadatenverwaltung verwendet, wird nun durch den Kafka-Raft-Modus (KRaft) ersetzt, um eine bessere Selbstverwaltung zu ermöglichen.

Installation von Apache Kafka unter Debian 12

Installation von Java 8+ unter Debian 12

Apache Kafka benötigt Java 8 oder höher, um ausgeführt zu werden. Befolgen Sie diese Schritte, um Java zu installieren:

  1. Aktualisieren Sie den Paketindex:
    sudo apt update
  2. Installieren Sie das OpenJDK-Paket:
    sudo apt install -y openjdk-11-jdk
  3. Überprüfen Sie die Java-Installation:
    java -version

Laden Sie die neueste Kafka-Version herunter

  1. Gehen Sie zu die Download-Seite von Apache Kafka und laden Sie die neueste Version herunter.
  2. Laden Sie Kafka mit wget oder curl herunter:
    wget https://downloads.apache.org/kafka/3.x.x/kafka_2.13-3.x.x.tgz

Entpacken Sie das Kafka-Binärarchiv

Entpacken Sie das heruntergeladene Archiv:

tar -xzf kafka_2.13-3.x.x.tgz

Verschieben Sie den entpackten Ordner nach /opt:

sudo mv kafka_2.13-3.x.x /opt/kafka

Starten von Kafka im KRaft-Modus (KRaft)

Im KRaft-Modus entfällt die Notwendigkeit von ZooKeeper, was die Verwaltung des Kafka-Clusters vereinfacht. Die KRaft-Konfigurationsdateien finden Sie unter /opt/kafka/config/kraft/.

Konfigurieren Sie KRaft für einen Kafka-Cluster

  1. Erstellen Sie eine neue Konfigurationsdatei oder bearbeiten Sie die vorhandene „server.properties“:
    sudo nano /opt/kafka/config/kraft/server.properties
  2. Fügen Sie die folgenden Eigenschaften hinzu oder ändern Sie sie:
    process.roles=broker,controller node.id=1 controller.quorum.voters=1@<broker-ip>:9093 listeners=PLAINTEXT://<broker-ip>:9092,CONTROLLER://<broker-ip>:9093 log.dirs=/var/lib/kafka/data

Protokollverzeichnis ändern

Stellen Sie sicher, dass die Kafka-Protokolle in einem Verzeichnis mit ausreichendem Speicherplatz gespeichert werden; standardmäßig werden die Protokolle im Verzeichnis /tmp/kraft-combined-logs“ gespeichert.

Um sicherzustellen, dass die Protokolle in einem Verzeichnis mit ausreichend Speicherplatz gespeichert werden, aktualisieren Sie bei Bedarf log.dirs in server.properties:

log.dirs=/new/path/to/kafka-logs

Erstellen Sie eine Kafka-Cluster-ID

Eine Cluster-ID dient zur Identifizierung eines Clusters im KRaft-Modus.

  1. Erstellen Sie die Cluster-ID:
    /opt/kafka/bin/kafka-storage.sh random-uuid
  2. Speichern Sie die generierte ID und formatieren Sie das Protokollverzeichnis:
    /opt/kafka/bin/kafka-storage.sh format -t <cluster-id> -c /opt/kafka/config/kraft/server.properties

Kafka-Protokollverzeichnis in das KRaft-Format konvertieren

Mit der im vorherigen Schritt generierten Cluster-ID können wir die Protokollverzeichnisse formatieren. Dies geschieht für jeden Kafka-Broker, damit dieser über ein Verzeichnis zum Speichern seiner Protokolle verfügt (sofern der Cluster aus mehreren Knoten besteht).

  1. Formatieren Sie das Log-Verzeichnis mithilfe der Cluster-ID und des folgenden Befehls:
    /opt/kafka/bin/kafka-storage.sh format -t <uuid> -c /opt/kafka/config/kraft/server.properties
  2. Ersetzen Sie die UUID durch URaeRekUQAyy8wLMNX2Q-w, sodass der Befehl wie folgt aussieht:
    /opt/kafka/bin/kafka-storage.sh format -t URaeRekUQAyy8wLMNX2Q-w \ -c /opt/kafka/config/kraft/server.properties
  3. Alternativ können Sie den folgenden Befehl verwenden:

    /opt/kafka/bin/kafka-storage.sh format \ -t /opt/kafka/bin/kafka-storage.sh random-uuid \ -c /opt/kafka/config/kraft/server.properties

Kafka-Heap-Größe anpassen

Um eine stabile Leistung von Kafka zu gewährleisten, können Sie die Heap-Größe entsprechend anpassen; die Heap-Größe entspricht im Wesentlichen dem Arbeitsspeicher, der der Java Virtual Machine (JVM) zur Verfügung steht, auf der Kafka ausgeführt wird. Sie müssen sicherstellen, dass die Heap-Größe für das Datenaufkommen ausreicht, das Ihr Server verarbeiten muss.

Eine der Einstellungen, die Speicherplatz beansprucht und Einfluss darauf hat, wie lange Kafka die Daten speichert, ist log.retention.hours, die standardmäßig auf 7 Tage festgelegt ist. Andere Parameter wie log.retention.minutes, log.retention.ms, oder log.retention.bytes können ebenfalls verwendet werden; diese Parameter können in der Datei /opt/kafka/config/kraft/server.properties angepasst werden.

Um Daten beispielsweise 8 Stunden lang aufzubewahren, verwenden Sie die folgende Zeile:

log.retention.hours=8

Speichern Sie anschließend die Datei und schließen Sie sie.

Starten des Kafka-Brokers

Kafka-Broker im Vordergrund starten

Führen Sie den Kafka-Broker manuell aus:

/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/kraft/server.properties

Kafka-Broker als systemd-Dienst ausführen

  • Erstellen Sie eine kafka.service-Datei erstellen:

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

  • Fügen Sie die folgende Konfiguration hinzu:

[Unit] Description=Apache Kafka Service After=network.target

[Service] Type=simple ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/kraft/server.properties Restart=on-failure User=kafka

[Install] WantedBy=multi-user.target

  • Laden Sie systemd neu und starten Sie Kafka:

sudo systemctl daemon-reload sudo systemctl start kafka sudo systemctl enable kafka

Themen erstellen, Nachrichten senden und empfangen in Kafka

Bei richtiger Konfiguration können Ihre Produzenten Nachrichten an Kafka-Themen veröffentlichen und Konsumenten verschiedene Themen abonnieren und Datensätze daraus lesen.

Ein Thema manuell erstellen

Um ein Testthema auf dem Kafka-Server/Broker zu erstellen, verwenden Sie:

/opt/kafka/bin/kafka-topics.sh --create --topic test-topic --bootstrap-server <broker-ip>:9092 --partitions 1 --replication-factor 1

Verfügbare Kafka-Themen anzeigen

Um verfügbare Kafka-Themen anzuzeigen, verwenden Sie:

/opt/kafka/bin/kafka-topics.sh --list --bootstrap-server <broker-ip>:9092

Schreiben (Produzieren) und Lesen (Consume) von Nachrichten in Kafka-Themen

  • Um eine Nachricht zu produzieren, verwenden Sie den folgenden Befehl:

/opt/kafka/bin/kafka-console-producer.sh --bootstrap-server localhost:9092 \ --topic kafka-topic-test

Nach der Ausführung erhalten Sie folgende Eingabeaufforderung: >

  • Geben Sie Ihre Nachricht ein und drücken Sie die Eingabetaste:

>Hallo Kafka, dies ist meine Nachricht

  • Um die Nachricht zu konsumieren, verwenden Sie:

/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic kafka-topic-test

Kafka-Themen entfernen

Um ein Thema zu löschen, verwenden Sie:

/opt/kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic <Name-des-Themas>

Um alle Themen zu löschen, verwenden Sie:

for i in /opt/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092;do /opt/kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic $i; done

Einrichten eines Kafka-Clusters mit drei Knoten

Konfigurieren Sie mehrere Broker, indem Sie für jeden Knoten separate server.properties-Dateien mit eindeutigen node.id-, listeners- und log.-Einstellungen erstellen. Passen Sie `controller.quorum.voters` so an, dass alle Knoten einbezogen werden.

Verwaltung von Kafka-Clustern über die Benutzeroberfläche

Tools wie Kafka Manager, Conduktor und Lenses.io bieten grafische Oberflächen zur Überwachung und Verwaltung von Kafka-Clustern. Nach unserer Erfahrung erleichtern diese Tools die Administration.

Die Einrichtung von Apache Kafka unter Debian 12 mit KRaft ermöglicht robustes, dezentrales Message-Streaming und skalierbare Datenpipelines – unverzichtbar für moderne, datengesteuerte Anwendungen.

Teilen

War dieser Artikel für Sie hilfreich?

VPS beliebte Angebote

-10%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
200 GB HDD
Bandwidth
Bandwidth
300 Gb
KVM-HDD HK 8192 Linux

21.05 /mo

/mo

Alle 12 Monate abgerechnet

-5.4%

CPU
CPU
4 Xeon Cores
RAM
RAM
2 GB
Space
Space
60 GB HDD
Bandwidth
Bandwidth
300 Gb
wKVM-HDD HK 2048 Windows

11.89 /mo

/mo

Alle 12 Monate abgerechnet

-24.4%

CPU
CPU
2 Xeon Cores
RAM
RAM
1 GB
Space
Space
20 GB SSD
Bandwidth
Bandwidth
300 GB
KVM-SSD 1024 HK Linux

13 /mo

/mo

Alle 12 Monate abgerechnet

-9.5%

CPU
CPU
8 Epyc Cores
RAM
RAM
32 GB
Space
Space
200 GB NVMe
Bandwidth
Bandwidth
Unlimited
wKVM-NVMe 32768 Windows

74.49 /mo

/mo

Alle 12 Monate abgerechnet

-26.7%

CPU
CPU
3 Xeon Cores
RAM
RAM
1 GB
Space
Space
20 GB SSD
Bandwidth
Bandwidth
1 TB
KVM-SSD 1024 Metered Linux

10 /mo

/mo

Alle 12 Monate abgerechnet

-7.1%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
100 GB HDD
Bandwidth
Bandwidth
Unlimited
wKVM-HDD 4096 Windows

21 /mo

/mo

Alle 12 Monate abgerechnet

-18.6%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
4 TB
wKVM-SSD 4096 Metered Windows

38 /mo

/mo

Alle 12 Monate abgerechnet

-12.8%

CPU
CPU
3 Xeon Cores
RAM
RAM
1 GB
Space
Space
50 GB SSD
Bandwidth
Bandwidth
1 TB
wKVM-SSD 1024 Metered Windows

17 /mo

/mo

Alle 12 Monate abgerechnet

-10%

CPU
CPU
8 Xeon Cores
RAM
RAM
32 GB
Space
Space
200 GB SSD
Bandwidth
Bandwidth
12 TB
KVM-SSD 32768 Metered Linux

150 /mo

/mo

Alle 12 Monate abgerechnet

-10%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
Unlimited
wKVM-SSD 8192 Windows

28.44 /mo

/mo

Alle 12 Monate abgerechnet

Weitere Artikel zu diesem Thema

cookie

Cookies und Datenschutz akzeptieren?

Wir verwenden Cookies, um sicherzustellen, dass wir Ihnen die beste Erfahrung auf unserer Website bieten. Wenn Sie fortfahren, ohne Ihre Einstellungen zu ändern, gehen wir davon aus, dass Sie mit dem Empfang aller Cookies auf der HostZealot-Website einverstanden sind.