HBase
 sql >> Datenbank >  >> NoSQL >> HBase

Funktionsweise von Hadoop – Verstehen Sie die Funktionsweise von Hadoop

Sie möchten wissen, wie Hadoop große Datenmengen tatsächlich speichert und verarbeitet?

In diesem Artikel werden wir untersuchen, wie Hadoop intern funktioniert. Wir werden sehen, wie Hadoop große Datensätze speichert und verarbeitet. Der Artikel erklärt detailliert die Funktionsweise von Hadoop. Der Artikel gibt zunächst eine kurze Einführung in Hadoop.

Dann sehen wir die Hadoop-Kernkomponenten und die Daemons, die im Hadoop-Cluster ausgeführt werden. Der Artikel erklärt dann die Funktionsweise von Hadoop und deckt alle Kernkomponenten wie HDFS, MapReduce und YARN ab.

Sehen wir uns also zunächst die kurze Einführung in Hadoop an.

Einführung in Hadoop

Mit dem Aufkommen von Big Data hat die Apache Software Foundation 2008 ein Open-Source-Framework namens Apache Hadoop entwickelt, das eine Lösung für alle Big Data-Probleme darstellt.

Apache Hadoop ist ein Framework, das riesige Mengen unstrukturierter Daten mit einer Größe von Terabyte bis Petabyte speichern und verarbeiten kann. Es ist ein hochgradig fehlertolerantes und hochverfügbares System.

Hadoop speichert eine riesige Menge an Daten verteilt in HDFS. Das Hadoop MapReduce ist die Verarbeitungseinheit in Hadoop, die die Daten parallel verarbeitet.

Hadoop YARN ist eine weitere Kernkomponente im Hadoop-Framework, das für die Verwaltung von Ressourcen zwischen Anwendungen, die im Cluster ausgeführt werden, und die Planung der Aufgabe verantwortlich ist.

Bevor wir untersuchen, wie Hadoop intern funktioniert, sehen wir uns zunächst die Hauptkomponenten und Daemons von Hadoop an.

Komponenten und Daemons von Hadoop

Hadoop besteht aus drei Hauptkomponenten:HDFS, MapReduce und YARN.

1. Hadoop-HDFS

Es ist die Speicherschicht für Hadoop. Hadoop Distributed File System speichert Daten über verschiedene Knoten in einem Cluster. Es teilt die Daten in Blöcke auf und speichert sie auf verschiedenen Knoten. Die Blockgröße beträgt standardmäßig 128 MB . Wir können die Blockgröße gemäß unseren Anforderungen konfigurieren.

2. Hadoop MapReduce

Es ist die Verarbeitungsschicht in Hadoop. Hadoop MapReduce verarbeitet die in Hadoop HDFS gespeicherten Daten parallel über verschiedene Knoten im Cluster. Es teilt die vom Benutzer eingereichte Aufgabe in unabhängige Aufgaben auf und verarbeitet sie als Teilaufgaben über die Standardhardware hinweg.

3. Hadoop-GARN

Es ist die Ressourcen- und Prozessverwaltungsebene von Hadoop. YARN ist für die gemeinsame Nutzung von Ressourcen zwischen den im Cluster ausgeführten Anwendungen und die Planung der Aufgabe im Cluster verantwortlich.

Dies sind die drei Kernkomponenten in Hadoop.

Daemons, die im Hadoop-Cluster ausgeführt werden

Es gibt einige Daemons, die auf dem Hadoop-Cluster ausgeführt werden. Daemons sind die leichtgewichtigen Prozesse, die im Hintergrund ausgeführt werden.

Einige Daemons laufen auf dem Master-Knoten und einige auf dem Slave-Knoten. Lassen Sie uns nun die Hadoop-Daemons studieren.

Die wichtigsten Hadoop-Daemon sind:

1. Dämonen meistern

  • NameNode: Es ist der Master-Daemon in Hadoop HDFS. Es verwaltet den Namensraum des Dateisystems. Es speichert Metadaten über jeden Block der Dateien.
  • Ressourcenmanager: Es ist der Master-Daemon von YARN. Es verteilt Ressourcen zwischen allen Anwendungen, die im Cluster ausgeführt werden.

2. Sklavendämonen

  • Datenknoten: DataNode ist der Slave-Daemon von Hadoop HDFS. Es läuft auf Slave-Rechnern. Es speichert aktuelle Daten oder Blöcke.
  • NodeManager: Es ist der Slave-Daemon von YARN. Es kümmert sich um alle einzelnen Rechenknoten im Cluster.

Wie funktioniert Hadoop?

Hadoop speichert und verarbeitet die Daten verteilt über den Cluster von Standardhardware. Um Daten zu speichern und zu verarbeiten, übermittelt der Client die Daten und das Programm an den Hadoop-Cluster.

Hadoop HDFS speichert die Daten, MapReduce verarbeitet die in HDFS gespeicherten Daten und YARN teilt die Aufgaben auf und weist Ressourcen zu.

Sehen wir uns diese Komponenten nun im Detail an.

1. HDFS

Die Daten in Hadoop werden im Hadoop Distributed File System gespeichert. In Hadoop HDFS werden zwei Daemons ausgeführt:NameNode und DataNode.

a. Namensknoten

NameNode ist der Master-Daemon in HDFS. Es läuft auf den Masterknoten. Es verwaltet den Namensraum des Dateisystems. NameNode speichert nicht die eigentlichen Daten. Es speichert die Metadaten, wie z. B. Informationen über Dateiblöcke, Dateiberechtigungen, Blockorte usw.

NameNode verwaltet den DataNode und stellt ihnen Anweisungen zur Verfügung. NameNode empfängt alle 3 Sekunden einen Herzschlag von DataNodes, der angibt, dass der DataNode aktiv ist.

b. DataNode

DataNode ist der Slave-Daemon in HDFS. DataNodes sind die Slave-Knoten, die die eigentlichen Geschäftsdaten speichern. Sie sind dafür verantwortlich, die Lese-/Schreibanfragen des Clients basierend auf den Anweisungen von NameNode zu bedienen. DataNodes senden Heartbeat-Nachrichten an den NameNode, um sicherzustellen, dass sie am Leben sind.

c. Sekundärer NameNode

Es ist ein weiterer Daemon im Hadoop HDFS. Es ist der Hilfsknoten für den primären NameNode. Der sekundäre NameNode lädt die Bearbeitungsprotokolle und die Fsimage-Datei vom primären NameNode herunter und wendet die Bearbeitungsprotokolle regelmäßig auf Fsimage an .

Dann sendet er die aktualisierte Fsimage-Datei an den NameNode zurück. Wenn also der primäre NameNode ausfällt, wird das zuletzt gespeicherte Fsimage auf dem sekundären NameNode verwendet, um Metadaten des Dateisystems wiederherzustellen.

Immer wenn der Client Daten in Hadoop HDFS lesen oder schreiben möchte, interagiert er zuerst mit dem NameNode. NameNode prüft zuerst die Client-Privilegien, und wenn der Client über ausreichende Privilegien verfügt, stellt NameNode die Adresse der DataNodes bereit, von denen der Client Daten lesen oder schreiben kann.

Die Datei des Kunden in HDFS ist in Blöcke unterteilt. Die Blockgröße beträgt standardmäßig 128 MB. DataNode speichert die Dateiblöcke. Um Fehlertoleranz bereitzustellen, erstellt HDFS je nach Replikationsfaktor Kopien von Blöcken.

Standardmäßig ist der Replikationsfaktor 3, was bedeutet, dass 3 Kopien eines Blocks in HDFS gespeichert werden. HDFS speichert Kopien des Blocks auf verschiedenen DataNodes, indem es dem Rack-Awareness-Algorithmus folgt.

Wenn während des Lesens einer Datei ein DataNode ausfällt, stellt der NameNode die Adresse eines anderen DataNode bereit, der eine Kopie des Blocks enthält, von dem der Client seine Daten ohne Ausfallzeit lesen kann.

2. MapReduce

MapReduce ist die Verarbeitungsschicht in Hadoop. Es verarbeitet die Daten parallel über mehrere Maschinen im Cluster hinweg. Es funktioniert, indem es die Aufgabe in unabhängige Teilaufgaben aufteilt und diese parallel über verschiedene DataNodes hinweg ausführt.

MapReduce verarbeitet die Daten in zwei Phasen, d. h. die Map-Phase und die Reduce-Phase . Die Eingabe und Ausgabe beider Phasen sind die Schlüssel-Wert-Paare. Die Art der Schlüssel-Wert-Paare wird vom Programmierer durch die InputFormat-Klasse angegeben . Standardmäßig wird das Texteingabeformat verwendet.

Der Programmierer spezifiziert die beiden Funktionen, also Map-Funktion und die Reduce-Funktion . In der Kartenfunktion schreibt der Programmierer die Geschäftslogik für die Verarbeitung der Daten.

In der Reduce-Funktion schreibt der Programmierer die Logik zum Zusammenfassen und Aggregieren der Zwischenausgabe der map-Funktion und generiert die Ausgabe.

Arbeitsweise von Hadoop MapReduce

Immer wenn der Client eine Verarbeitung seiner Daten im Hadoop-Cluster durchführen möchte, speichert er die Daten zunächst in Hadoop HDFS und schreibt dann das MapReduce-Programm zur Verarbeitung der Daten. Das Hadoop MapReduce funktioniert wie folgt:

1. Hadoop teilt den Job in zwei Arten von Aufgaben auf, nämlich Aufgaben abbilden und Aufgaben reduzieren. YARN hat diese Aufgaben geplant (die wir später in diesem Artikel sehen werden). Diese Tasks laufen auf verschiedenen DataNodes.

2. Die Eingabe für den MapReduce-Job wird in Teile fester Größe unterteilt, die als Eingabeaufteilungen bezeichnet werden.

3. Für jede Eingabeaufteilung wird eine Zuordnungsaufgabe erstellt, die eine benutzerdefinierte Zuordnungsfunktion für jeden Datensatz in der Eingabeaufteilung ausführt. Diese Zuordnungsaufgaben werden auf den DataNodes ausgeführt, auf denen sich die Eingabedaten befinden.

4. Die Ausgabe des Map-Tasks ist eine Zwischenausgabe und wird auf die lokale Platte geschrieben.

5. Die Zwischenausgaben der Map-Tasks werden gemischt und sortiert und dann an den Reducer übergeben.

6. Für eine einzelne Reduzieraufgabe wird die sortierte Zwischenausgabe des Mappers an den Knoten weitergeleitet, an dem die Reduzieraufgabe läuft. Diese Ausgaben werden dann zusammengeführt und dann an die benutzerdefinierte Reduzierungsfunktion übergeben.

7. Die Reduce-Funktion fasst die Ausgabe des Mappers zusammen und generiert die Ausgabe. Die Ausgabe des Reducers wird auf HDFS gespeichert.

8. Für mehrere Reduzierfunktionen gibt der Benutzer die Anzahl der Reduzierer an. Wenn mehrere Reduzieraufgaben vorhanden sind, partitionieren die Zuordnungsaufgaben ihre Ausgabe und erstellen eine Partition für jede Reduzieraufgabe.

GARN

YARN ist die Ressourcenverwaltungsschicht in Hadoop. Es plant die Aufgabe im Hadoop-Cluster und weist den im Cluster ausgeführten Anwendungen Ressourcen zu. Es ist verantwortlich für die Bereitstellung der für die Ausführung der Anwendungen erforderlichen Rechenressourcen.

Im Hadoop-Cluster werden zwei YARN-Daemons ausgeführt, um YARN-Kerndienste bereitzustellen. Sie sind:

a. Ressourcenmanager

Es ist der Master-Daemon von YARN. Es wird auf dem Master-Knoten pro Cluster ausgeführt, um die Ressourcen im gesamten Cluster zu verwalten. Der ResourceManager hat zwei Hauptkomponenten, die Scheduler sind und ApplicationManager.

Der Planer weist verschiedenen Anwendungen, die im Cluster ausgeführt werden, Ressourcen zu.

ApplicationManager nimmt den vom Client übermittelten Auftrag auf und handelt den Container zur Ausführung des anwendungsspezifischen ApplicationMaster aus und startet den ApplicationMaster-Container bei einem Fehler neu.

b. NodeManager

NodeManager ist der Slave-Daemon von YARN. Es wird auf allen Slave-Knoten im Cluster ausgeführt. Es ist für das Starten und Verwalten der Container auf Knoten verantwortlich. Container führen die anwendungsspezifischen Prozesse mit einem eingeschränkten Satz von Ressourcen wie Arbeitsspeicher, CPU usw. aus.

Wenn der NodeManager startet, meldet er sich beim ResourceManager an. Es sendet regelmäßig einen Heartbeat an den ResourceManager. Es bietet dem Cluster Ressourcen an.

c. ApplicationMaster

Der anwendungsspezifische ApplicationMaster verhandelt Container aus Schedulern und verfolgt den Containerstatus und überwacht den Containerfortschritt.

Ein Client sendet eine Anwendung an den ResourceManager. Der ResourceManager kontaktiert den NodeManager, der die Compute-Container auf Knoten im Cluster startet und überwacht. Der Container führt den ApplicationMaster aus.

Der MapReduce-Task und der ApplicationMaster laufen in Containern, die vom ResourceManager geplant und von den NodeManagern verwaltet werden.

Lassen Sie uns nun zusammenfassen, wie Hadoop intern funktioniert:

1. HDFS teilt die Client-Eingabedaten in Blöcke mit einer Größe von 128 MB auf. Abhängig vom Replikationsfaktor werden Kopien von Blöcken erstellt. Die Blöcke und ihre Replikate werden auf verschiedenen DataNodes gespeichert.

2. Sobald alle Blöcke auf HDFS DataNodes gespeichert sind, kann der Benutzer die Daten verarbeiten.

3. Zur Verarbeitung der Daten übermittelt der Client das MapReduce-Programm an Hadoop.

4. ResourceManager plante dann das vom Benutzer übermittelte Programm auf einzelnen Knoten im Cluster.

5. Sobald alle Knoten die Verarbeitung abgeschlossen haben, wird die Ausgabe in das HDFS zurückgeschrieben.

Zusammenfassung

In diesem Artikel haben wir die gesamte Funktionsweise von Hadoop untersucht. Ich hoffe, nachdem Sie diesen Artikel gelesen haben, verstehen Sie, wie Hadoop riesige Datenmengen speichert und verarbeitet.

Der Artikel erläutert auch, wie die Ressourcen unter den Anwendungen in den Ressourcen geplant werden. Der Artikel beschreibt die wichtigsten Daemons, die im Hadoop-Cluster ausgeführt werden, und die Kernkomponenten von Hadoop.

Ich hoffe, Sie verstehen, wie Hadoop intern funktioniert.

Lernen Sie weiter!!