Einführung in Hadoop Components

Hadoop-Komponenten sind hauptsächlich HDFS, Map Reduce und Garn. Heute leben wir in einem digitalen Zeitalter, in dem die Datenproduktionsrate sehr hoch ist. Wir produzieren ungefähr 2, 5 Billionen Daten pro Tag. Die Speicherkapazität der Festplatten nimmt zwar zu, die Suchrate hat sich jedoch für dieses Datenvolumen nicht erhöht. Um dies zu überwinden, müssen die Daten parallel gelesen werden. Um dies in Hadoop zu erreichen, verfügen wir über ein HDFS (Hadoop Distributed File System), bei dem die Datensätze als Blöcke in HDFS gespeichert werden (weitere Informationen finden Sie im Abschnitt HDFS), um Daten parallel zu lesen und zu erreichen höhere Verarbeitungsrate. Die Datenverarbeitung erfolgt, um wichtige Informationen abzurufen oder vorherzusagen oder um bestimmte Trends oder Muster abzurufen. Der MapReduce-Prozess wird verwendet, um die gewünschten Informationen abzurufen. Map und Reduce sind die beiden unterschiedlichen Phasen der Datenverarbeitung.

Hauptkomponenten von Hadoop

Die Hauptkomponenten von Hadoop werden nachfolgend beschrieben:

1. Hadoop Distributed File System (HDFS)

HDFS ist die Speicherschicht für Big Data. Es ist ein Cluster von vielen Maschinen. Die gespeicherten Daten können für die Verarbeitung mit Hadoop verwendet werden. Sobald die Daten an HDFS übertragen wurden, können wir sie jederzeit verarbeiten. Bis zu dem Zeitpunkt, an dem wir die Daten verarbeiten, verbleiben sie in HDFS, bis wir die Dateien manuell löschen. HDFS speichert die Daten als Block, die Mindestgröße des Blocks beträgt 128 MB in Hadoop 2.x und für 1.x waren es 64 MB. HDFS repliziert die Blöcke für die verfügbaren Daten, wenn Daten auf einem Computer gespeichert sind und wenn der Computer ausfällt. Daten gehen nicht verloren. Um dies zu vermeiden, werden Daten auf verschiedenen Computern repliziert. Der Replikationsfaktor ist standardmäßig 3 und wir können in HDFS-site.xml oder mit dem Befehl Hadoop fs -strep -w 3 / dir ändern, indem wir replizieren, dass die Blöcke auf verschiedenen Computern für hohe Verfügbarkeit verfügbar sind.
HDFS ist eine Master-Slave-Architektur, es ist NameNode als Master und Data Node als Slave. NameNode ist die Maschine, auf der alle Metadaten aller im DataNode gespeicherten Blöcke gespeichert sind.

2. GARN

YARN wurde in Hadoop 2.x eingeführt, bevor Hadoop einen JobTracker für das Ressourcenmanagement hatte. Job Tracker war der Master und es hatte einen Task Tracker als Slave. Job Tracker war derjenige, der sich um die Planung der Jobs und die Zuweisung von Ressourcen kümmerte. Der Task Tracker dient zur Verwaltung der Map- und Reduce-Aufgaben. Der Status wurde regelmäßig auf Job Tracker aktualisiert. Bei einer Art Ressourcenmanager war die Skalierbarkeit begrenzt, und die gleichzeitige Ausführung der Aufgaben war ebenfalls eingeschränkt. Diese Probleme wurden in YARN behoben und es kümmerte sich um die Zuweisung von Ressourcen und die Planung von Jobs in einem Cluster. Das Ausführen eines Map Reduce-Jobs erfordert Ressourcen in einem Cluster, um die für den Job zugewiesenen Ressourcen abzurufen. YARN hilft dabei. YARN bestimmt, welche Arbeit erledigt ist und auf welcher Maschine sie erledigt ist. Es verfügt über alle Informationen zu verfügbaren Kernen und Arbeitsspeicher im Cluster und verfolgt den Arbeitsspeicherverbrauch im Cluster. Es interagiert mit dem NameNode über die Daten, in denen es sich befindet, um die Entscheidung über die Ressourcenzuweisung zu treffen.

3. MapReduce

Das Hadoop-Ökosystem ist eine kostengünstige, skalierbare und flexible Möglichkeit, mit so großen Datenmengen zu arbeiten. Hadoop ist ein Framework, das ein bestimmtes Programmiermodell namens MapReduce verwendet, um Berechnungsaufgaben in Blöcke aufzuteilen, die mithilfe von Hadoop Distributed Filesystem (HDFS) auf einem Cluster von Standardcomputern verteilt werden können.

MapReduce besteht aus zwei verschiedenen Aufgaben: Map und Reduce, Map geht der Reducer Phase voraus. Wie der Name schon sagt, ordnet die Kartenphase die Daten Schlüssel-Wert-Paaren zu, wie wir alle wissen, verwendet Hadoop Schlüsselwerte für die Verarbeitung. Die Reduktionsphase ist die Phase, in der die eigentliche Logik implementiert werden muss. Abgesehen von diesen beiden Phasen werden auch die Misch- und Sortierphase implementiert.

1. Mapper

Mapper ist die Klasse, in der die Eingabedatei zur weiteren Verarbeitung in Schlüssel- und Wertepaare konvertiert wird. Beim Lesen der Daten werden nur Schlüsselwerte eingelesen, bei denen der Schlüssel der Bitoffset und der Wert der gesamte Datensatz ist.

ZB haben wir eine Datei Diary.txt, in der wir zwei Zeilen geschrieben haben, dh zwei Datensätze.

Dies ist ein wundervoller Tag, den wir hier genießen sollten. Die Offsets für 't' sind 0 und für 'w' sind 33 (Leerzeichen werden auch als Zeichen betrachtet), sodass der Mapper die Daten als Schlüssel-Wert-Paar liest. as (Schlüssel, Wert), (0, dies ist ein wundervoller Tag), (33, wir sollten genießen)

2. Reduzierer

Reducer ist die Klasse, die Schlüssel und Werte aus der Ausgabe der Mapper-Phase akzeptiert. Vom Mapper erzeugte Schlüssel und Werte werden als Eingabe in den Reduzierer zur weiteren Verarbeitung akzeptiert. Der Reducer akzeptiert Daten von mehreren Mappern. Reducer aggregiert diese Zwischendaten zu einer reduzierten Anzahl von Schlüsseln und Werten, was die endgültige Ausgabe darstellt. Dies wird im Beispiel gezeigt.

3. Fahrer

Neben der Mapper- und der Reducer-Klasse benötigen wir eine weitere Klasse, die Driver-Klasse. Dieser Code ist für MapReduce erforderlich, da er die Brücke zwischen dem Framework und der implementierten Logik darstellt. Es gibt die Konfiguration, den Eingabedatenpfad, den Ausgabespeicherpfad und vor allem die Mapper- und Reduktionsklassen an, die implementiert werden müssen. In dieser Klasse werden auch viele andere Konfigurationen festgelegt. Beispielsweise können wir in der Treiberklasse das Trennzeichen für die Ausgabedatei angeben, wie in der Treiberklasse des folgenden Beispiels gezeigt.

Beispiel

Angenommen, wir haben einen Datensatz eines Reisebüros. Jetzt müssen wir aus den Daten berechnen, wie viele Personen sich für die Reise zu einem bestimmten Ziel entscheiden. Um dies zu erreichen, müssen wir das Ziel als Schlüssel und für die Zählung den Wert 1 verwenden. In der Mapper-Phase ordnen wir das Ziel dem Wert 1 zu. Es ordnet alle Werte einem bestimmten Schlüssel zu. Wenn wir beispielsweise ein Ziel als MAA haben, haben wir 1 zugeordnet, und nach dem Mischen und Sortieren haben wir 2 Vorkommen, wobei (1, 1) der Wert ist. Jetzt, in der Reduzierungsphase, haben wir bereits eine Logik in der Reduzierungsphase implementiert, um die Werte zu addieren, um die Gesamtanzahl der für das Ziel gebuchten Tickets zu erhalten. Dies ist der Ablauf von MapReduce.

Unten sehen Sie den Screenshot des implementierten Programms für das obige Beispiel.

1. Fahrerklasse

2. Mapper-Klasse

3. Reduzierklasse

Ausführen des Hadoop

Für die Ausführung von Hadoop müssen wir zuerst das jar erstellen und können es dann mit dem folgenden Befehl ausführen: Hadoop jar eample.jar /input.txt /output.txt

Fazit

Hier haben wir die Kernkomponenten von Hadoop wie HDFS, Map Reduce und YARN besprochen. Es handelt sich um ein verteiltes Cluster-Computing-Framework, mit dessen Hilfe die Daten gespeichert, verarbeitet und die erforderlichen Analysen der erfassten Daten durchgeführt werden können. Hadoop ist flexibel und in Bezug auf Daten zuverlässig, da Daten repliziert und skalierbar sind. Das heißt, wir können dem Cluster weitere Maschinen zum Speichern und Verarbeiten von Daten hinzufügen.

Empfohlene Artikel

Dies war ein Leitfaden für Hadoop Components. Hier haben wir die Kernkomponenten des Hadoop anhand von Beispielen besprochen. Sie können auch unsere anderen Artikelvorschläge durchgehen, um mehr zu erfahren -

  1. Einführung in die JDBC-Architektur
  2. Was ist Hadoop Cluster?
  3. Was ist MapReduce in Hadoop?
  4. Was ist Big Data und Hadoop
  5. Hadoop fs Befehle

Kategorie: