Wie funktioniert MapReduce? - Arbeiten, Phasen und Vorteile von MapReduce

Inhaltsverzeichnis:

Anonim

Einführung in MapReduce

MapReduce ist eine Computerkomponente des Hadoop Frameworks, mit der auf einfache Weise Anwendungen geschrieben werden können, die große Datenmengen parallel verarbeiten und auf großen Clustern billiger Standardmaschinen zuverlässig und fehlertolerant gespeichert werden. In diesem Thema erfahren Sie, wie MapReduce funktioniert.

MapReduce kann verteilte und parallele Berechnungen mit großen Datenmengen über eine große Anzahl von Knoten durchführen. Ein MapReduce-Job teilt normalerweise die Eingabedatensätze auf und verarbeitet sie dann unabhängig von den Map-Tasks vollständig parallel. Die Ausgabe wird dann sortiert und eingegeben, um Aufgaben zu reduzieren. Sowohl die Jobeingabe als auch die Jobausgabe werden in Dateisystemen gespeichert. Aufgaben werden vom Framework geplant und überwacht.

Wie funktioniert MapReduce?

Die MapReduce-Architektur enthält zwei Kernkomponenten als Daemon-Dienste, die für die Ausführung von Mapper- und Reduktionsaufgaben, die Überwachung und die erneute Ausführung der Aufgaben bei Fehlern verantwortlich sind. Ab Hadoop 2 sind Resource Manager und Node Manager die Daemon-Dienste. Wenn der Job-Client einen MapReduce-Job übergibt, werden diese Daemons aktiv. Sie sind auch für die Parallelverarbeitung und Fehlertoleranzfunktionen von MapReduce-Jobs verantwortlich.

In Hadoop 2 werden Ressourcenmanagement- und Jobplanungs- oder Überwachungsfunktionen von YARN (Yet Another Resource Negotiator) als unterschiedliche Daemons getrennt. Im Vergleich zu Hadoop 1 mit Job Tracker und Task Tracker enthält Hadoop 2 für jede Anwendung einen globalen Ressourcenmanager (RM) und Anwendungsmaster (AM).

  • Job Client übergibt den Job an den Ressourcenmanager.
  • Der Scheduler von YARN Resource Manager ist für die Koordination der Ressourcenzuweisung des Clusters unter den laufenden Anwendungen verantwortlich.
  • Der YARN-Knotenmanager wird auf jedem Knoten ausgeführt und verwaltet Ressourcen auf Knotenebene in Abstimmung mit dem Ressourcenmanager. Es startet und überwacht die Computercontainer auf dem Computer im Cluster.
  • Application Master unterstützt die Ressourcen von Resource Manager und verwendet Node Manager, um MapReduce-Aufgaben auszuführen und zu koordinieren.

  • HDFS wird normalerweise verwendet, um die Auftragsdateien für andere Entitäten freizugeben.

Phasen des MapReduce-Modells

MapReduce-Modell hat drei Haupt- und eine optionale Phase:

1. Mapper

  • Es ist die erste Phase der MapReduce-Programmierung und enthält die Codierungslogik der Mapper-Funktion.
  • Die bedingte Logik wird auf 'n' Datenblöcke angewendet, die über verschiedene Datenknoten verteilt sind.
  • Die Mapper-Funktion akzeptiert Schlüssel-Wert-Paare als Eingabe als (k, v), wobei der Schlüssel die Offset-Adresse jedes Datensatzes darstellt und der Wert den gesamten Datensatzinhalt darstellt.
  • Die Ausgabe der Mapper-Phase erfolgt ebenfalls im Schlüsselwertformat (k ', v').

2. Mischen und Sortieren

  • Die Ausgabe verschiedener Mapper (k ', v') geht dann in die Shuffle- und Sortierphase.
  • Alle doppelten Werte werden entfernt und verschiedene Werte werden basierend auf ähnlichen Schlüsseln gruppiert.
  • Die Ausgabe der Shuffle- und Sortierphase sind wieder Schlüssel-Wert-Paare als Schlüssel und Array von Werten (k, v ()).

3. Reduzierer

  • Der Ausgang der Shuffle- und Sortierphase (k, v ()) ist der Eingang der Reduktionsphase.
  • In dieser Phase wird die Logik der Reduktionsfunktion ausgeführt und alle Werte werden mit ihren entsprechenden Schlüsseln zusammengefasst.
  • Reducer konsolidiert die Ausgaben verschiedener Mapper und berechnet die endgültige Jobausgabe.
  • Die endgültige Ausgabe wird dann in eine einzelne Datei in einem Ausgabeverzeichnis von HDFS geschrieben.

4. Kombinierer

  • Es ist eine optionale Phase im MapReduce-Modell.
  • Die Kombinationsphase wird verwendet, um die Leistung von MapReduce-Jobs zu optimieren.
  • In dieser Phase werden verschiedene Ausgaben der Mapper lokal auf der Knotenebene reduziert.
  • Wenn beispielsweise verschiedene Mapper-Ausgaben (k, v), die von einem einzelnen Knoten stammen, Duplikate enthalten, werden sie kombiniert, dh lokal zu einer einzigen Ausgabe (k, v ()) reduziert.
  • Diese Phase beschleunigt die Arbeit in der Shuffle- und Sortierphase und ermöglicht so zusätzliche Leistung bei MapReduce-Jobs.

Alle diese Phasen in einem MapReduce-Job können wie folgt dargestellt werden:

Die MapReduce-Logik zum Ermitteln der Wortanzahl in einem Array von Wörtern kann beispielsweise wie folgt dargestellt werden:

fruits_array = (Apfel, Orange, Apfel, Guave, Trauben, Orange, Apfel)

  • In der Mapper-Phase wird das eingegebene Array von Wörtern in 'n' Wörter unterteilt, um die Ausgabe als (k, v) zu erhalten. Betrachten Sie zum Beispiel "Apfel". Die Mapper-Ausgabe ist (apple, 1), (apple, 1), (apple, 1).
  • Shuffle und Sort akzeptieren die Mapper-Ausgabe (k, v) und gruppieren alle Werte gemäß ihren Schlüsseln als (k, v ()). dh (Apfel, (1, 1, 1)).
  • Die Reduktionsphase akzeptiert Shuffle- und Sortierausgaben und gibt die Summe der Werte (Apfel, (1 + 1 + 1)) entsprechend ihren Schlüsseln an. dh (Apfel, 3).

Spekulative Ausführung von MapReduce-Arbeiten

Die Geschwindigkeit von MapReduce wird von der langsamsten Aufgabe dominiert. Um die Geschwindigkeit zu erhöhen, kann ein neuer Mapper gleichzeitig mit demselben Datensatz arbeiten. Je nachdem, was zuerst erledigt wird, gilt dies als endgültige Ausgabe und die andere wird beendet. Es ist eine Optimierungstechnik.

Vorteile von MapReduce

Hier erwähnen die Vorteile von MapReduce unten

1. Fehlertoleranz

  • Während eines Map-Reduction-Jobs wird der Fehler von der Architektur behoben, wenn ein Computer mit wenigen Datenblöcken ausfällt.
  • Replizierte Kopien der Blöcke in alternativen Maschinen werden für die weitere Verarbeitung berücksichtigt.

2. Belastbarkeit

  • Jeder Knoten aktualisiert seinen Status regelmäßig auf den Masterknoten.
  • Wenn ein Slave-Knoten seine Benachrichtigung nicht sendet, weist der Master-Knoten die derzeit ausgeführte Aufgabe dieses Slave-Knotens anderen verfügbaren Knoten im Cluster zu.

3. Schnell

  • Die Datenverarbeitung ist schnell, da MapReduce HDFS als Speichersystem verwendet.
  • MapReduce benötigt Minuten, um Terabyte unstrukturierter großer Datenmengen zu verarbeiten.

4. Parallelverarbeitung

  • MapReduce-Tasks verarbeiten mehrere Blöcke desselben Datasets parallel, indem sie die Tasks aufteilen.
  • Dies bietet den Vorteil, dass die Aufgabe in kürzerer Zeit erledigt werden kann.

5. Verfügbarkeit

  • Mehrere Replikate derselben Daten werden an zahlreiche Knoten im Netzwerk gesendet.
  • So stehen im Fehlerfall andere Kopien ohne Verlust zur Bearbeitung zur Verfügung.

6. Skalierbarkeit

  • Hadoop ist eine hoch skalierbare Plattform.
  • Herkömmliche RDBMS-Systeme sind entsprechend der Zunahme des Datenvolumens nicht skalierbar.
  • Mit MapReduce können Sie Anwendungen von einer großen Anzahl von Knoten ausführen, wobei Terabyte und Petabyte an Daten verwendet werden.

7. Kostengünstig

  • Mit der Skalierungsfunktion von Hadoop und der MapReduce-Programmierung können Sie Daten sehr effektiv und kostengünstig speichern und verarbeiten.
  • Kosteneinsparungen können bei Hunderten von Terabytes an Daten massiv sein.

Fazit - Wie MapReduce funktioniert

Moderne Daten bewegen sich immer mehr in Richtung des unstrukturierten Typs, und riesige, konventionelle Datenverarbeitungsoptionen wie RDBMS sind noch schwieriger, zeitaufwendiger und kostenintensiver. Die MapReduce-Programmierung von Hadoop ist jedoch viel effektiver, sicherer und schneller bei der Verarbeitung großer Datensätze, die sogar Terabyte oder Petabyte umfassen.

Empfohlene Artikel

Dies ist eine Anleitung zur Funktionsweise von MapReduce. Hier diskutieren wir die Phasen des MapReduce-Modells mit den Vorteilen und wie es funktioniert. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -

  1. Hadoop-Ökosystemkomponenten
  2. MapReduce-Algorithmen
  3. Was ist MapReduce in Hadoop?
  4. Fragen in Vorstellungsgesprächen bei MapReduce