Inhaltsverzeichnis:
Video: Hadoop : XML Parsing with MapReduce | MapReduce Tutorial | Big Data Tutorial For Beginners | Edureka 2024
Um die Fähigkeiten von Hadoop MapReduce zu verstehen, ist es wichtig, zwischen MapReduce (dem Algorithmus) und einem Implementierung von MapReduce. Hadoop MapReduce ist eine Implementierung des Algorithmus, der vom Apache Hadoop-Projekt entwickelt und gepflegt wird.
Es ist hilfreich, diese Implementierung als MapReduce-Engine zu betrachten, denn genau so funktioniert es. Sie liefern Input (Kraftstoff), die Engine wandelt die Eingabe schnell und effizient in Ausgabe um und Sie erhalten die Antworten, die Sie brauchen.
Hadoop MapReduce umfasst mehrere Phasen, von denen jede mit wichtigen Operationen ausgestattet ist, um das Ziel zu erreichen, Antworten auf Big Data zu erhalten. Der Prozess beginnt mit einer Benutzeranforderung zum Ausführen eines MapReduce-Programms und wird fortgesetzt, bis die Ergebnisse in das HDFS zurückgeschrieben werden.
HDFS und MapReduce führen ihre Arbeit an Knoten in einem Cluster aus, der auf Racks von Commodity-Servern gehostet wird. Um die Diskussion zu vereinfachen, zeigt das Diagramm nur zwei Knoten.
Big Data bereithalten
Wenn ein Client die Ausführung eines MapReduce-Programms anfordert, besteht der erste Schritt darin, die Eingabedatei mit den Rohdaten zu suchen und zu lesen. Das Dateiformat ist völlig willkürlich, aber die Daten müssen in etwas konvertiert werden, das das Programm verarbeiten kann. Dies ist die Funktion von InputFormat und RecordReader. InputFormat entscheidet, wie die Datei mit einer Funktion namens InputSplit in kleinere Teile zerlegt wird.
Anschließend weist er einen RecordReader zu, um die Rohdaten zur Verarbeitung durch die Karte umzuwandeln. Im Lieferumfang von Hadoop sind verschiedene RecordReader-Typen enthalten, die eine Vielzahl von Konvertierungsoptionen bieten. Diese Funktion ist eine der Möglichkeiten, mit der Hadoop die große Vielfalt an Datentypen verwaltet, die bei Big Data-Problemen auftreten.
Beginnen Sie mit der Big Data Map
Ihre Daten sind jetzt in einer für die Karte akzeptablen Form. Für jedes Eingabepaar wird eine bestimmte Instanz von map aufgerufen, um die Daten zu verarbeiten. Aber was macht es mit der verarbeiteten Ausgabe und wie kann man sie im Auge behalten?
Karte verfügt über zwei zusätzliche Funktionen, um die Fragen zu beantworten. Da Map und Reduce zusammenarbeiten müssen, um Ihre Daten zu verarbeiten, muss das Programm die Ausgabe von den unabhängigen Mapper sammeln und an die Reduzierer weiterleiten. Diese Aufgabe wird von einem OutputCollector ausgeführt. Eine Reporterfunktion stellt auch Informationen bereit, die von Kartenaufgaben gesammelt wurden, damit Sie wissen, wann oder ob die Kartenaufgaben abgeschlossen sind.
Diese Arbeit wird gleichzeitig auf mehreren Knoten im Hadoop-Cluster ausgeführt.Es kann Fälle geben, in denen die Ausgabe von bestimmten Zuordnungsprozessen akkumuliert werden muss, bevor die Reduzierer beginnen können. Oder einige der Zwischenergebnisse müssen möglicherweise vor der Reduktion verarbeitet werden.
Darüber hinaus befinden sich einige dieser Ausgaben möglicherweise auf einem Knoten, der sich von dem Knoten unterscheidet, auf dem die Reduzierer für diesen spezifischen Ausgang ausgeführt werden. Das Sammeln und Mischen von Zwischenergebnissen wird von einem Partitionierer und einer Sortierung durchgeführt. Die Zuordnungsaufgaben liefern die Ergebnisse an eine bestimmte Partition als Eingaben für die Reduzierungsaufgaben.
Nachdem alle Map-Tasks abgeschlossen sind, werden die Zwischenergebnisse in der Partition gesammelt und ein Shuffling durchgeführt, wobei die Ausgabe für eine optimale Verarbeitung durch reduce sortiert wird.
Reduzieren und kombinieren für große Daten
Für jedes Ausgangspaar wird reduce aufgerufen, um seine Aufgabe auszuführen. In ähnlicher Weise wie map erfasst reduce seine Ausgabe, während alle Aufgaben verarbeitet werden. Die Reduzierung kann erst beginnen, wenn die gesamte Zuordnung abgeschlossen ist. Die Ausgabe von reduce ist ebenfalls ein Schlüssel und ein Wert. Während dies notwendig ist, um seine Arbeit zu reduzieren, ist es möglicherweise nicht das effektivste Ausgabeformat für Ihre Anwendung.
Hadoop bietet eine OutputFormat-Funktion, die sehr ähnlich wie InputFormat funktioniert. OutputFormat übernimmt das Schlüssel / Wert-Paar und organisiert die Ausgabe zum Schreiben in HDFS. Die letzte Aufgabe besteht darin, die Daten tatsächlich in HDFS zu schreiben. Dies wird von RecordWriter durchgeführt, und es funktioniert ähnlich wie RecordReader, außer in umgekehrter Reihenfolge. Es nimmt die OutputFormat-Daten und schreibt sie in der für die Anforderungen des Programms erforderlichen Form in HDFS.
Die Koordination all dieser Aktivitäten wurde in früheren Versionen von Hadoop von einem Job Scheduler verwaltet. Dieser Planer war rudimentär, und als sich die Jobmischung änderte und wuchs, war klar, dass ein anderer Ansatz notwendig war. Der Hauptmangel im alten Scheduler war das Fehlen von Ressourcenmanagement. Die neueste Version von Hadoop verfügt über diese neue Funktion.
Hadoop MapReduce ist das Herzstück des Hadoop-Systems. Es bietet alle Funktionen, die Sie benötigen, um große Datenmengen in verwaltbare Blöcke aufzuteilen, die Daten parallel auf Ihrem verteilten Cluster zu verarbeiten und die Daten dann für den Benutzerverbrauch oder die zusätzliche Verarbeitung verfügbar zu machen. Und all dies funktioniert sehr widerstandsfähig und fehlertolerant. Das ist erst der Anfang.