Datenverarbeitung in Hadoop: Hadoop-Komponenten erklärt [2022]

Veröffentlicht: 2021-01-03

Mit dem exponentiellen Wachstum des World Wide Web im Laufe der Jahre wuchsen auch die generierten Daten exponentiell. Dies führte zu einer enormen Datenmenge, die erstellt wurde, und es war schwierig, diese riesige Datenmenge mit den traditionellen relationalen Datenbanksystemen zu verarbeiten und zu speichern.

Außerdem lagen die erstellten Daten nicht nur in strukturierter Form vor, sondern auch in unstrukturiertem Format wie Videos, Bilder usw. Diese Art von Daten kann nicht von relationalen Datenbanken verarbeitet werden. Um diesen Problemen entgegenzuwirken, wurde Hadoop ins Leben gerufen.

Bevor wir in die Datenverarbeitung von Hadoop eintauchen, wollen wir uns einen Überblick über Hadoop und seine Komponenten verschaffen. Apache Hadoop ist ein Framework, das die schnelle und effiziente Speicherung und Verarbeitung großer Datenmengen ermöglicht. Es kann verwendet werden, um riesige Mengen strukturierter und unstrukturierter Daten zu speichern. Erfahren Sie mehr über das Ökosystem und die Komponenten von Hadoop.

Die zentralen Bausteine ​​von Hadoop sind wie folgt: –

Inhaltsverzeichnis

Bausteine ​​von Hadoop

1. HDFS (Die Speicherschicht)

Wie der Name schon sagt, ist Hadoop Distributed File System die Speicherschicht von Hadoop und für die Speicherung der Daten in einer verteilten Umgebung (Master- und Slave-Konfiguration) verantwortlich. Es teilt die Daten in mehrere Datenblöcke auf und speichert sie über verschiedene Datenknoten hinweg. Diese Datenblöcke werden auch über verschiedene Datenknoten repliziert, um einen Datenverlust zu verhindern, wenn einer der Knoten ausfällt.

Es laufen zwei Hauptprozesse zur Verarbeitung der Daten: –

A. NameNode

Es läuft auf dem Master-Rechner. Es speichert die Speicherorte aller im Dateisystem gespeicherten Dateien und verfolgt, wo sich die Daten im Cluster befinden, dh es speichert die Metadaten der Dateien. Wenn die Client-Anwendungen bestimmte Operationen an den Daten ausführen möchten, interagiert sie mit dem NameNode. Wenn der NameNode die Anfrage erhält, antwortet er, indem er eine Liste von Datenknotenservern zurücksendet, auf denen sich die erforderlichen Daten befinden.

B. Datenknoten

Dieser Prozess läuft auf jedem Slave-Rechner. Eine seiner Funktionen besteht darin, jeden HDFS-Datenblock in einer separaten Datei in seinem lokalen Dateisystem zu speichern. Mit anderen Worten, es enthält die eigentlichen Daten in Form von Blöcken. Es sendet periodisch Heartbeat-Signale und wartet auf die Anfrage vom NameNode, um auf die Daten zuzugreifen.

2. MapReduce (Die Verarbeitungsschicht)

Es ist eine auf Java basierende Programmiertechnik, die auf dem Hadoop-Framework für die schnellere Verarbeitung großer Datenmengen verwendet wird. Es verarbeitet diese riesigen Daten in einer verteilten Umgebung mit vielen Datenknoten, was eine parallele Verarbeitung und eine schnellere Ausführung von Operationen auf fehlertolerante Weise ermöglicht.

Ein MapReduce-Job teilt den Datensatz in mehrere Datenblöcke auf, die weiter in Schlüssel-Wert-Paare konvertiert werden, um von den Mappern verarbeitet zu werden. Das Rohformat der Daten ist möglicherweise nicht für die Verarbeitung geeignet. Somit werden die mit der Map-Phase kompatiblen Eingabedaten unter Verwendung der InputSplit-Funktion und des RecordReader generiert.

InputSplit ist die logische Darstellung der Daten, die von einem einzelnen Mapper verarbeitet werden sollen. RecordReader wandelt diese Aufteilungen in Datensätze um, die die Form von Schlüssel-Wert-Paaren haben. Es wandelt im Grunde die byteorientierte Darstellung der Eingabe in eine datensatzorientierte Darstellung um.

Diese Aufzeichnungen werden dann den Mappern zur weiteren Verarbeitung der Daten zugeführt. MapReduce-Jobs bestehen hauptsächlich aus drei Phasen, nämlich der Map-Phase, der Shuffle-Phase und der Reduce-Phase.

A. Kartenphase

Es ist die erste Phase der Datenverarbeitung. Die Hauptaufgabe in der Zuordnungsphase besteht darin, jede Eingabe vom RecordReader zu verarbeiten und in Zwischentupel (Schlüssel-Wert-Paare) umzuwandeln. Diese Zwischenausgabe wird von den Mappern auf der lokalen Festplatte gespeichert.

Die Werte dieser Schlüssel-Wert-Paare können sich von denen unterscheiden, die als Eingabe vom RecordReader empfangen werden. Die Abbildungsphase kann auch Kombinatoren enthalten, die auch als lokale Reduzierer bezeichnet werden. Sie führen Aggregationen an den Daten durch, jedoch nur im Rahmen eines Mappers.

Da die Berechnungen über verschiedene Datenknoten hinweg durchgeführt werden, ist es wichtig, dass alle Werte, die demselben Schlüssel zugeordnet sind, in einem Reduzierer zusammengeführt werden. Diese Aufgabe übernimmt der Partitionierer. Es führt eine Hash-Funktion über diese Schlüssel-Wert-Paare aus, um sie zusammenzuführen.

Es stellt auch sicher, dass alle Aufgaben gleichmäßig auf die Reduzierer verteilt werden. Partitionierer kommen im Allgemeinen ins Spiel, wenn wir mit mehr als einem Reducer arbeiten.

B. Misch- und Sortierphase

Diese Phase überträgt die von den Mappern erhaltene Zwischenausgabe zu den Reduzierern. Dieser Vorgang wird als Mischen bezeichnet. Die Ausgabe der Mapper wird ebenfalls sortiert, bevor sie an die Reducer übertragen wird. Die Sortierung erfolgt anhand der Schlüssel in den Schlüssel-Wert-Paaren. Es hilft den Reduzierern, die Berechnungen an den Daten durchzuführen, noch bevor die gesamten Daten empfangen werden, und hilft schließlich, die für Berechnungen erforderliche Zeit zu reduzieren.

Während die Schlüssel sortiert werden, beginnt der Reduzierer immer dann, wenn er einen anderen Schlüssel als Eingabe erhält, damit, die Reduzieraufgaben an den zuvor empfangenen Daten durchzuführen.

C. Phase reduzieren

Die Ausgabe der Abbildungsphase dient als Eingabe für die Reduzierphase. Es nimmt diese Schlüssel-Wert-Paare und wendet die Reduce-Funktion darauf an, um das gewünschte Ergebnis zu erzielen. Die Schlüssel und die dem Schlüssel zugeordneten Werte werden an die Reduce-Funktion weitergegeben, um bestimmte Operationen auszuführen.

Wir können die Daten filtern oder kombinieren, um die aggregierte Ausgabe zu erhalten. Nach der Ausführung der Reduce-Funktion kann sie null oder mehr Schlüssel-Wert-Paare erstellen. Dieses Ergebnis wird in das Hadoop Distributed File System zurückgeschrieben.

3. YARN (Die Verwaltungsschicht)

Yet Another Resource Navigator ist die Ressourcenverwaltungskomponente von Hadoop. Auf jedem Knoten laufen Hintergrundprozesse (Node Manager auf den Slave-Rechnern und Ressourcen-Manager auf dem Master-Knoten), die für die Zuweisung von Ressourcen miteinander kommunizieren. Der Resource Manager ist das Herzstück des YARN-Layers, der die Ressourcen zwischen allen Anwendungen verwaltet und die Anfragen an den Node Manager weiterleitet.

Der Node Manager überwacht die Ressourcenauslastung wie Arbeitsspeicher, CPU und Festplatte der Maschine und übermittelt diese an den Ressourcenmanager. Es wird auf jedem Datenknoten installiert und ist für die Ausführung der Aufgaben auf den Datenknoten verantwortlich.

Muss gelesen werden: Top 10 Hadoop-Tools für Big-Data-Ingenieure

Fazit

Der gesamte Workflow für die Datenverarbeitung auf Hadoop lässt sich wie folgt zusammenfassen: –

  • InputSplit ; teilt die Daten, die sich auf HDFS befinden, logisch in mehrere Datenblöcke auf. Die Entscheidung, wie die Daten aufgeteilt werden, trifft das Inputformat .
  • Die Daten werden von RecordReader in Schlüssel-Wert-Paare umgewandelt. RecordReader wandelt die byteorientierten Daten in datensatzorientierte Daten um. Diese Daten dienen als Eingabe für den Mapper.
  • Der Mapper, der nichts anderes als eine benutzerdefinierte Funktion ist, verarbeitet diese Schlüssel-Wert-Paare und generiert Zwischenschlüssel-Wert-Paare für die weitere Verarbeitung.
  • Diese Paare werden (innerhalb des Geltungsbereichs eines Mappers) durch die Combiner lokal reduziert, um die Datenmenge zu reduzieren, die von dem Mapper an den Reducer zu übertragen ist.
  • Partitioner stellt sicher, dass alle Werte mit demselben Schlüssel in demselben Reducer zusammengeführt werden und dass die Aufgaben gleichmäßig auf die Reducer verteilt werden.
  • Diese Schlüssel-Wert-Zwischenpaare werden dann zu den Reduzierern gemischt und auf der Grundlage von Schlüsseln sortiert. Dieses Ergebnis wird den Reduzierern als Eingabe zugeführt.
  • Die Reduce-Funktion aggregiert die Werte für jeden Schlüssel und das Ergebnis wird mit RecordWriter wieder im HDFS gespeichert. Vor dem Zurückschreiben in das HDFS wird durch das Outputformat entschieden, in welchem ​​Format die Daten geschrieben werden sollen .

Wenn Sie mehr über Big Data erfahren möchten, schauen Sie sich unser PG Diploma in Software Development Specialization in Big Data-Programm an, das für Berufstätige konzipiert ist und mehr als 7 Fallstudien und Projekte bietet, 14 Programmiersprachen und Tools abdeckt und praktische praktische Übungen enthält Workshops, mehr als 400 Stunden gründliches Lernen und Unterstützung bei der Stellenvermittlung bei Top-Unternehmen.

Lernen Sie Softwareentwicklungskurse online von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.

Meistern Sie die Technologie der Zukunft – Big Data

ÜBER 400 STUNDEN LERNEN. 14 SPRACHEN & TOOLS. IIIT-B ALUMNI-STATUS.
Advanced Certificate Program in Big Data vom IIIT Bangalore