MapReduce in Hadoop: Phasen, Ein- und Ausgänge, Funktionen und Vorteile
Veröffentlicht: 2020-12-24Hadoop MapReduce ist ein Programmiermodell und ein Software-Framework, das zum Schreiben von Anwendungen verwendet wird, die große Datenmengen verarbeiten. Es gibt zwei Phasen im MapReduce-Programm, Map und Reduce.
Die Zuordnungsaufgabe umfasst das Aufteilen und Zuordnen der Daten, indem ein Datensatz genommen und in einen anderen Datensatz konvertiert wird, wobei die einzelnen Elemente in Tupel, dh Schlüssel/Wert-Paare, zerlegt werden. Danach mischt und reduziert der Reduce-Task die Daten, was bedeutet, dass er die Datentupel basierend auf dem Schlüssel kombiniert und den Wert des Schlüssels entsprechend ändert.
Im Hadoop-Framework ist das MapReduce-Modell die Kernkomponente für die Datenverarbeitung. Mit diesem Modell ist es sehr einfach, eine Anwendung so zu skalieren, dass sie auf Hunderten, Tausenden und vielen weiteren Maschinen in einem Cluster ausgeführt wird, indem nur eine Konfigurationsänderung vorgenommen wird. Das liegt auch daran, dass die Programme des Modells im Cloud Computing paralleler Natur sind. Hadoop kann MapReduce in vielen Sprachen wie Java, Ruby, Python und C++ ausführen. Lesen Sie mehr über die mapreduce-Architektur.
Inhaltsverzeichnis
Eingänge und Ausgänge
Das MapReduce-Modell arbeitet mit <Schlüssel, Wert>-Paaren. Es betrachtet die Eingabe für die Jobs als einen Satz von <Schlüssel, Wert>-Paaren und erzeugt einen anderen Satz von <Schlüssel, Wert>-Paaren als Ausgabe der Jobs. Die Dateneingabe wird in diesem Framework von zwei Klassen unterstützt, nämlich InputFormat und RecordReader.
Ersteres wird konsultiert, um zu bestimmen, wie die Eingabedaten für die Zuordnungsaufgaben partitioniert werden sollen, während letzteres die Daten aus den Eingaben liest. Auch für die Datenausgabe gibt es zwei Klassen, OutputFormat und RecordWriter. Die erste Klasse führt eine grundlegende Validierung der Datensenkeneigenschaften durch, und die zweite Klasse wird verwendet, um jede Ausgabe des Reduzierers in die Datensenke zu schreiben.
Was sind die Phasen von MapReduce?
In MapReduce durchlaufen Daten die folgenden Phasen.

Eingabeaufteilungen: Eine Eingabe im MapReduce-Modell wird in kleine Teile mit fester Größe unterteilt, die als Eingabeaufteilungen bezeichnet werden. Dieser Teil der Eingabe wird von einer einzelnen Karte verbraucht. Die Eingabedaten sind im Allgemeinen eine im HDFS gespeicherte Datei oder ein Verzeichnis.
Mapping: Dies ist die erste Phase in der Ausführung des Map-Reduce-Programms, in der die Daten in jedem Split Zeile für Zeile an eine Mapper-Funktion übergeben werden, um sie zu verarbeiten und die Ausgabewerte zu erzeugen.
Mischen: Es ist ein Teil der Ausgabephase von Mapping, wo die relevanten Datensätze aus der Ausgabe konsolidiert werden. Es besteht aus Zusammenführen und Sortieren. Alle Schlüssel-Wert-Paare, die dieselben Schlüssel haben, werden also kombiniert. Beim Sortieren werden die Eingaben aus dem Zusammenführungsschritt genommen und sortiert. Es gibt Schlüssel-Wert-Paare zurück und sortiert die Ausgabe.
Reduce: Alle Werte aus der Shuffling-Phase werden kombiniert und ein einzelner Ausgabewert zurückgegeben. Somit wird der gesamte Datensatz zusammengefasst.
Lesen Sie auch: Fragen und Antworten zu Mapreduce-Interviews

Wie funktioniert MapReduce Organize?
Hadoop unterteilt eine Aufgabe in zwei Teile, Map-Aufgaben, die Splits und Mapping umfassen, und Reduce-Aufgaben, die Shuffling und Reducing umfassen. Diese wurden in den Phasen im obigen Abschnitt erwähnt. Die Ausführung dieser Aufgaben wird von zwei Entitäten namens JobTracker und Multiple Task Tracker gesteuert.
Bei jedem Job, der zur Ausführung übermittelt wird, gibt es einen JobTracker, der sich auf dem NameNode befindet, und mehrere Task-Tracker, die sich auf dem DataNode befinden. Ein Job wird in mehrere Tasks aufgeteilt, die auf mehreren Datenknoten im Cluster ausgeführt werden. Der JobTracker koordiniert die Aktivität, indem er Aufgaben so plant, dass sie auf verschiedenen Datenknoten ausgeführt werden.
Der Aufgabentracker kümmert sich um die Ausführung einzelner Aufgaben. Es sendet auch den Fortschrittsbericht an den JobTracker. In regelmäßigen Abständen sendet es ein Signal an den JobTracker, um den aktuellen Zustand des Systems mitzuteilen. Wenn ein Task fehlschlägt, plant der JobTracker ihn auf einem anderen Task-Tracker neu.
Vorteile von MapReduce
Es gibt eine Reihe von Vorteilen für Anwendungen, die dieses Modell verwenden. Diese sind

- – Big Data lässt sich einfach handhaben.
- – Datensätze können parallel verarbeitet werden.
- – Alle Arten von Daten wie strukturierte, unstrukturierte und halbstrukturierte Daten können problemlos verarbeitet werden.
- – Hohe Skalierbarkeit ist gegeben.
- – Das Zählen von Wörtern ist einfach und diese Anwendungen können eine umfangreiche Datensammlung haben.
- – Auf große Stichproben von Befragten kann schnell zugegriffen werden.
- – In der Datenanalyse kann ein generisches Tool zum Suchen von Tools verwendet werden.
- – Lastausgleichszeit wird in großen Clustern angeboten.
- – Der Prozess des Extrahierens von Kontexten von Benutzerstandorten, -situationen usw. ist einfach möglich.
- – Diese Anwendungen erhalten eine gute Generalisierungsleistung und Konvergenz.
Muss gelesen werden: Mapreduce vs. Apache Spark
Fazit
Wir haben MapReduce in Hadoop ausführlich beschrieben. Wir haben auch eine kurze Beschreibung des Frameworks zusammen mit Definitionen von Map und Reduce in der Einführung bereitgestellt. Die Definitionen verschiedener in diesem Modell verwendeter Begriffe wurden zusammen mit Einzelheiten zu den Ein- und Ausgängen angegeben.
Eine detaillierte Erläuterung der verschiedenen Phasen des MapReduce-Frameworks veranschaulicht detailliert, wie die Arbeit organisiert wird. Die Liste der Vorteile der Verwendung von MapReduce für Anwendungen gibt ein klares Bild von der Verwendung und Relevanz
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.

