Bleiben Sie über die neuesten Technologietrends auf dem Laufenden
Treten Sie DataFlair auf Telegram bei!!
Kafka-Integration mit Hadoop
Heute werden wir in diesem Kafka Hadoop-Tutorial die Kafka Hadoop-Integration diskutieren. Darüber hinaus werden wir dieses Tutorial mit Hadoop Einführung beginnen. Außerdem werden wir Hadoop Producer und Hadoop Consumer in Kafka Integration mit Hadoop sehen.
Grundsätzlich können wir Kafka in die Hadoop-Technologie integrieren, um verschiedene Anwendungsfälle wie die Stapelverarbeitung mit Hadoop zu adressieren. In diesem Artikel „Kafka Hadoop Integration“ erfahren Sie, wie Sie Hadoop einfacher und effizienter in Kafka integrieren können. Vor der Integration von Kafka in Hadoop ist es jedoch wichtig, die kurze Einführung in Hadoop zu lernen.
Beginnen wir also mit der Kafka Hadoop-Integration.
Kafka Hadoop-Integration
Was ist Hadoop?
Ein groß angelegtes verteiltes Stapelverarbeitungsframework, das die Datenverarbeitung zwischen vielen Knoten parallelisiert und auch die Herausforderungen für verteiltes Computing, einschließlich Big Data, angeht, nennen wir Hadoop.
Grundsätzlich funktioniert es nach dem Prinzip des von Google eingeführten MapReduce-Frameworks. Es bietet eine einfache Schnittstelle für die Parallelisierung sowie die Verteilung von Großrechnungen. Darüber hinaus verfügt es über ein eigenes verteiltes Datendateisystem, das wir als HDFS (Hadoop Distributed File System) bezeichnen. Um HDFS zu verstehen, werden die Daten in kleine Teile (Blöcke genannt) aufgeteilt und auf alle Knoten in einem typischen Hadoop-Cluster verteilt. Darüber hinaus erstellt es die Replikation dieser kleinen Datenstücke und speichert sie, um sicherzustellen, dass die Daten von einem anderen Knoten verfügbar sind, wenn ein Knoten ausgefallen ist.
Hier ist nun ein Bild, das die High-Level-Ansicht eines Hadoop-Clusters mit mehreren Knoten zeigt:
Hadoop Multinode Cluster
a. Hauptkomponenten von Hadoop
Im Folgenden sind die Hadoop-Komponenten aufgeführt:
- Name Node
Ein einziger Interaktionspunkt für HDFS ist das, was wir Namenode nennen. Als seine Aufgabe hält es die Informationen über die kleinen Stücke (Blöcke) von Daten, die unter Knoten verteilt sind.
- Sekundärer Namenode
Im Falle eines Namensknotenfehlers werden die Bearbeitungsprotokolle gespeichert, um den neuesten aktualisierten Status von HDFS wiederherzustellen.
- Datenknoten
Es speichert die tatsächlichen Daten, die vom Namenode in Blöcken verteilt werden, sowie die replizierte Kopie der Daten von anderen Knoten.
- Job Tracker
Um die MapReduce-Jobs in kleinere Aufgaben aufzuteilen, hilft Job Tracker.
- Task Tracker
Für die Ausführung von Aufgaben, die vom Job Tracker aufgeteilt werden, ist der Task Tracker verantwortlich.
Stellen Sie jedoch sicher, dass der Task-Tracker und die Datenknoten dieselben Maschinen verwenden.
Überprüfen Sie, wie viel Sie über Hadoop wissen
Kafka Hadoop Integration
Um eine Pipeline zu erstellen, die für die Echtzeitverarbeitung oder -überwachung verfügbar ist, sowie um die Daten in Hadoop-, NoSQL- oder Data Warehousing-Systeme für die Offline-Verarbeitung und Berichterstellung zu laden, insbesondere für Echtzeit-Publish-Subscribe-Anwendungsfälle, verwenden wir Kafka.
a. Hadoop producer
Um die Daten aus einem Hadoop-Cluster in Kafka zu veröffentlichen, bietet ein Hadoop-Produzent eine Bridge an, die Sie im folgenden Bild sehen können:
Darüber hinaus werden Kafka-Themen für einen Kafka-Produzenten als URIs betrachtet. Im Folgenden werden jedoch URIs angegeben, um eine Verbindung zu einem bestimmten Kafka-Broker herzustellen:
kafka://<kafka-broker>/<kafka-topic>
Nun, um die Daten von Hadoop abzurufen, schlägt der Hadoop-Producer-Code zwei mögliche Ansätze vor::
- Verwenden des Pig-Skripts und Schreiben von Nachrichten im Avro-Format
Zum Schreiben von Daten in einem binären Avro-Format verwenden Kafka-Produzenten bei diesem Ansatz grundsätzlich Pig-Skripte. Hier bezieht sich jede Zeile auf eine einzelne Nachricht. Darüber hinaus wählt die AvroKafkaStorage-Klasse das Avro-Schema als erstes Argument aus und stellt dann eine Verbindung zum Kafka-URI her, um die Daten in den Kafka-Cluster zu übertragen. Darüber hinaus können wir mit dem AvroKafkaStorage Producer problemlos mehrere Themen und Broker in demselben Pig-skriptbasierten Job schreiben.
- Verwenden der Kafka OutputFormat-Klasse für Jobs
In der zweiten Methode wird nun zum Veröffentlichen von Daten im Kafka-Cluster die Kafka OutputFormat-Klasse (erweitert die OutputFormat-Klasse von Hadoop) verwendet. Durch die Verwendung von Low-Level-Veröffentlichungsmethoden werden Nachrichten als Bytes veröffentlicht und auch die Ausgabe gesteuert. Zum Schreiben eines Datensatzes (einer Nachricht) in einen Hadoop-Cluster verwendet die Kafka OutputFormat-Klasse jedoch die KafkaRecordWriter-Klasse.
Darüber hinaus können wir Kafka-Producer-Parameter und Kafka-Broker-Informationen unter der Konfiguration eines Jobs für Kafka-Producer konfigurieren.
b. Hadoop Consumer
Ein Hadoop-Job, der Daten vom Kafka-Broker abruft und weiter in HDFS überträgt, wird als Hadoop-Consumer bezeichnet. In der Abbildung unten sehen Sie jedoch die Position eines Kafka-Verbrauchers im Architekturmuster:
Kafka Hadoop Integration – Hadoop Consumer
Als Prozess führt ein Hadoop-Job ein paralleles Laden von Kafka nach HDFS durch, wobei auch einige Mapper zum Laden der Daten verwendet werden, die von der Anzahl der Dateien im Eingabeverzeichnis abhängen. Darüber hinaus befinden sich Daten aus Kafka und die aktualisierten Themen-Offsets im Ausgabeverzeichnis. Ferner schreiben einzelne Mapper am Ende der Map-Aufgabe den Offset der zuletzt verbrauchten Nachricht in HDFS. Jeder Mapper startet jedoch einfach von den in HDFS gespeicherten Offsets neu, wenn ein Job fehlschlägt und Jobs neu gestartet werden.
Also, das war alles in Kafka Hadoop Integration. Hoffe dir gefällt unsere Erklärung.