Map-Reduce:

 

 

 

Map-reduce:

Die Grundfunktionen des MapReduce-Ansatzes bilden die beiden Funktionen Map und Reduce. Sie sorgen für die Zerlegung der Aufgaben in kleine parallelisierte Arbeitspakete und führen die Ergebnisse anschließend zusammen. Damit lassen sich die typischen Probleme, die klassische relationale Datenbanken mit der Verarbeitung von großen unstrukturierten Datenmengen haben, beseitigen.

 

 

Beispiel:


    Map-Phase

  • Map bildet ein Paar, bestehend aus einem Schlüssel und einem Wert , auf eine Liste von neuen Paaren ab, welche die Rolle von Zwischenergebnissen spielen. Die Werte sind vom gleichen Typ wie die Endergebnisse .
  • Bei einem neuen Paar verweist der von Map vergebene Schlüssel dabei auf eine Liste von Zwischenergebnissen, in welcher der von Map berechnete Wert gesammelt wird.
  • Die Bibliothek ruft für jedes Paar in der Eingabeliste die Funktion Map auf.
  • All diese Map-Berechnungen sind voneinander unabhängig, so dass man sie nebenläufig und verteilt auf einem Computercluster ausführen kann

    Shuffle-Phase

  • Bevor die Reduce-Phase starten kann, müssen die Ergebnisse der Map-Phase nach ihrem neuen Schlüssel in Listen gruppiert werden.
  • Wenn Map- und Reduce-Funktionen nebenläufig und verteilt ausgeführt werden, wird hierfür ein koordinierter Datenaustausch notwendig.
  • Die Performanz eines Map-Reduce-Systems hängt maßgeblich davon ab, wie effizient die Shuffle-Phase implementiert ist.
  • Der Nutzer wird in der Regel nur über die Gestaltung der Schlüssel auf die Shuffle-Phase Einfluss nehmen. Daher reicht es, sie einmalig gut zu optimieren, und zahlreiche Anwendungen können hiervon profitieren.

    Reduce-Phase

  • Sind alle Map-Aufrufe erfolgt bzw. liegen alle Zwischenergebnisse in vor, so ruft die Bibliothek für jede Zwischenwertliste die Funktion Reduce auf, welche daraus eine Liste von Ergebniswerten berechnet, die von der Bibliothek in der Ausgabeliste als Paare gesammelt werden.
  • Auch die Aufrufe von Reduce können unabhängig auf verschiedene Prozesse im Computercluster verteilt werden.

Combine-Phase

Optional kann vor der Shuffle-Phase noch eine Combine-Phase erfolgen. Diese hat in der Regel die gleiche Funktionalität wie die Reducefunktion, wird aber auf dem gleichen Knoten wie die Map-Phase ausgeführt. Dabei geht es darum, die Datenmenge, die in der Shuffle-Phase verarbeitet werden muss, und damit die Netzwerklast zu reduzieren.[5] Der Sinn der Combine-Phase erschließt sich sofort bei der Betrachtung des Wordcount-Beispiels: Auf Grund der unterschiedlichen Häufigkeit von Wörtern in natürlicher Sprache, würde bei einem deutschen Text beispielsweise sehr oft eine Ausgabe der Form ("und", 1) erzeugt (gleiches gilt für Artikel und Hilfsverben). Durch die Combine-Phase wird nun aus 100 Nachrichten der Form ("und", 1) lediglich eine Nachricht der Form ("und", 100). Dies kann die Netzwerkbelastung signifikant reduzieren, ist aber nicht in allen Anwendungsfällen möglich.

 



https://de.talend.com/resources/what-is-mapreduce/

https://de.wikipedia.org/wiki/MapReduce

https://www.bigdata-insider.de/was-ist-mapreduce-a-624936/