Verteilte Verarbeitung mit Hadoop MapReduce

Hadoop MapReduce beinhaltet die Verarbeitung einer Sequenz von Operationen auf verteilten Datensätzen. Die Daten bestehen aus Schlüssel-Wert-Paare, und die Berechnungen haben nur zwei Phasen: eine Karte Phase und eine Phase zu reduzieren. Benutzerdefinierte MapReduce-Jobs laufen auf den Rechenknoten im Cluster.

Im Allgemeinen läuft ein MapReduce Job wie folgt:

  1. Während der Map Phase werden Eingangsdaten in eine große Anzahl von Fragmenten aufgeteilt, von denen jeder mit einer Karte Aufgabe zugeordnet ist.

  2. Diese Karte Aufgaben werden über den Cluster verteilt.

  3. Jede Karte Aufgabe verarbeitet die Schlüssel-Wert-Paare aus dem ihm zugewiesenen Fragment und erzeugt einen Satz von Zwischenschlüssel-Wert-Paaren.

  4. Die Zwischendatensatz wird durch Schlüssel sortiert und die sortierten Daten in eine Anzahl von Fragmenten aufgeteilt, die die Anzahl von Aufgaben reduzieren einstimmt.

  5. Während der Phase reduzieren, reduzieren jede Aufgabe, die Datenfragment verarbeitet, die ihm zugewiesen wurde und erzeugt ein Ausgangs Schlüssel-Wert-Paar.

  6. Diese reduzieren Aufgaben werden auch über den Cluster verteilt und deren Ausgabe auf HDFS schreiben, wenn Sie fertig.

Der Hadoop MapReduce Framework in früher (vor Version 2) Hadoop Releases hat ein Single-Master-Dienst eine Jobtracker und mehrere Slave-Dienste genannt TaskTrackers, eine pro Knoten im Cluster genannt.

Wenn Sie einen MapReduce Auftrag an den Jobtracker einreichen, wird der Auftrag in eine Warteschlange gestellt und läuft dann nach den vom Administrator definierten Planungsregeln. Wie Sie vielleicht erwarten, verwaltet die Jobtracker die Zuordnung von map-und-zu reduzieren Aufgaben an die TaskTrackers.

Mit Hadoop 2, ein neues System Ressourcenmanagement in statt GARN (kurz genannt für Yet EINnother Resource Manager). GARN bietet generische Terminplanung und Ressourcenmanagement Dienstleistungen, so dass Sie mehr als nur MapReduce-Anwendungen auf dem Hadoop-Cluster ausgeführt werden können. Die Jobtracker / Tasktracker Architektur konnte nur MapReduce laufen.

HDFS hat auch eine Master / Slave-Architektur:

  • Master-Service: Genannt NameNode, es steuert den Zugriff auf Datendateien.

  • Slave Dienste: Namens Datanodes, sie sind eine pro Knoten im Cluster verteilt. Datanodes verwalten die Speicherung, die mit den Knoten, auf denen sie laufen, dienen Client Lese- und Schreibanforderungen, neben anderen Aufgaben verknüpft ist.

Menü