Hadoop MapReduce für Big Data

Um in vollem Umfang die Möglichkeiten von Hadoop MapReduce verstehen, ist es wichtig, zu unterscheiden zwischen Karte verkleinern

(Der Algorithmus) und eine Implementierung Karte verkleinern. Hadoop MapReduce ist eine Implementierung des Algorithmus von der Apache Hadoop-Projekt entwickelt und gepflegt.

Es ist hilfreich, um diese Implementierung als zu denken Karte verkleinern Motor, denn das ist genau, wie es funktioniert. Sie liefern den Input (Brennstoff), der Motor den Input in Output konvertiert schnell und effizient, und Sie erhalten die Antworten, die Sie benötigen.

Hadoop MapReduce umfasst mehrere Phasen, die jeweils mit einem wichtigen Satz von Operationen zu helfen, um Ihr Ziel zu bekommen, die Antworten zu bekommen Sie von großen Datenmengen benötigen. Der Prozess beginnt mit einer Benutzeranforderung ein MapReduce-Programm ausführen und wird fortgesetzt, bis die Ergebnisse zurück an den HDFS geschrieben werden.

bild0.jpg

HDFS und MapReduce führt ihre Arbeit auf Knoten in einem Cluster auf Gestellen von Commodity-Servern gehostet. Um die Diskussion zu vereinfachen, zeigt das Diagramm nur zwei Knoten.

Holen Sie sich die großen Daten bereit

Wenn ein Client eine MapReduce Programm anfordert auszuführen, ist der erste Schritt zu lokalisieren und die Eingabedatei enthält, die Rohdaten zu lesen. Das Dateiformat ist völlig willkürlich, aber die Daten muss das Programm kann auf etwas umgewandelt werden verarbeiten. Dies ist die Funktion des Inputformat und RecordReader. Inputformat entscheidet, wie die Datei in kleinere Stücke zerbrochen werden wird für die Verarbeitung einer Funktion aufgerufen InputSplit verwenden.

Er ordnet dann eine RecordReader die Rohdaten zur Verarbeitung durch die Karte zu transformieren. Mehrere Arten von RecordReaders mit Hadoop geliefert, eine Vielzahl von Konvertierungsoptionen anbietet. Diese Funktion ist eine der Möglichkeiten, die Hadoop die große Vielfalt von Datentypen verwaltet in großen Datenprobleme gefunden.

Lassen Sie die große Datenkarte beginnen

Ihre Daten sind nun in einer Form zur Karte akzeptabel. Für jedes Eingangspaar wird eine eindeutige Instanz der Karte aufgefordert, die Daten zu verarbeiten. Aber was macht es mit dem bearbeiteten Ausgabe, und wie können Sie den Überblick behalten?

Karte verfügt über zwei zusätzliche Fähigkeiten, um die Fragen zu beantworten. Da Karte und reduzieren müssen zusammenarbeiten, um Ihre Daten zu verarbeiten, muss das Programm die Ausgabe von den unabhängigen Mapper zu sammeln und an die Reduzierungen passieren. Diese Aufgabe wird von einem OutputCollector ausgeführt. Ein Reporter-Funktion bietet auch Informationen aus den Karten Aufgaben gesammelt, damit Sie wissen, wann oder ob die Karte Aufgaben abgeschlossen sind.

All diese Arbeiten werden gleichzeitig auf mehreren Knoten im Hadoop-Cluster ausgeführt. Sie kann Fälle, wo die Ausgabe von bestimmten Abbildungsverfahren akkumuliert werden muss, bevor die Reduktions beginnen kann. Oder können einige der Zwischenergebnisse müssen vor der Reduktion zu verarbeiten.

Zusätzlich können einige dieser Ausgang auf einem Knoten unterschiedlich sein von dem Knoten, wo die Reduktions für diese spezifische Leistung ausgeführt wird. Das Sammeln und Schlurfen von Zwischenergebnisse werden von einem Partitionierungsprogramm und eine Art durchgeführt. Die Karte Aufgaben werden die Ergebnisse auf eine bestimmte Partition als Eingänge zu den Aufgaben reduzieren liefern.

Nachdem alle Karte Aufgaben abgeschlossen sind, werden die Zwischenergebnisse in der Trennwand gesammelt und ein shuffling auftritt, durch Verringerung des Ausgangssignals für eine optimale Verarbeitung zu sortieren.

Reduzieren und kombinieren für große Datenmengen

Für jedes Ausgangspaar, zu reduzieren, ist aufgerufen, seine Aufgabe zu erfüllen. In ähnlicher Weise abzubilden, reduzieren sammelt seine Ausgabe, während alle Aufgaben bearbeiten. Reduzieren kann nicht beginnen, bis das gesamte Abbildungs ​​erfolgt. Der Ausgang der zu reduzieren, ist auch ein Schlüssel und ein Wert. Während dies erforderlich ist, reduzieren ihre Arbeit zu tun, kann es nicht die effektivste Ausgabeformat für Ihre Anwendung sein.

Hadoop bietet eine Output Funktion, und es funktioniert sehr ähnlich wie Inputformat. Output nimmt den Schlüssel-Wert-Paar und organisiert die Ausgabe auf HDFS für das Schreiben. Die letzte Aufgabe ist es, die Daten tatsächlich zu HDFS schreiben. Dies wird durch RecordWriter durchgeführt, und es führt in ähnlicher Weise zu RecordReader außer in umgekehrter Richtung. Es nimmt die Outputdaten und schreibt sie in HDFS in der Form, die für die Anforderungen des Programms.

Die Koordination all dieser Aktivitäten wurde in früheren Versionen von Hadoop durch einen Job-Scheduler verwaltet. Dieser Scheduler war rudimentär, und als die Mischung der Arbeitsplätze verändert und wuchs, war es klar, dass ein anderer Ansatz notwendig war. Der primäre Mangel in der alten scheduler war die fehlende Ressourcenmanagement. Die neueste Version von Hadoop hat diese neue Funktion.

Hadoop MapReduce ist das Herz des Hadoop-System. Es bietet alle Funktionen, die Sie die Daten parallel auf Ihrer verteilten Cluster große Datenmengen in überschaubare Einheiten, Verfahren zu brechen müssen, und dann werden die Daten für Benutzer Verbrauch oder zusätzliche Verarbeitung zur Verfügung zu stellen. Und es tut all diese Arbeit in einem hochelastischen, fehlertolerant. Dies ist nur der Anfang.

Menü