MapReduce

MapReduce ist ein Programmierkonzept, das bei verteiltem Rechnen zum Zuge kommt. Es bedient sich des funktionalen Programmierparadigmas.

Das MapReduce-Programm im Bild zählt Wörter im Text. Dazu zerlegt der Split-Step den Text in Blöcke. Der Map-Schritt wird für jeden Block gleichzeitig ausgeführt und filtert Hinblick auf die Programmlogik die Input-Daten. Hier wird pro Wort ein Schlüssel-Wert-Paar ausgegeben. Der Wert ist 1, was sich aus dem Ziel der Analyse ergibt.

Konzeptionelle Darstellung von MapReduce
Map Reduce – konzeptionell dargestellt. Das Framework stellt den gesamten Workflow sicher. Entwickler entwerfen und codieren eine Abfolge von Map und Reduce-Schritten. Die Darstellung zeigt, wie Wörter in einem Text gezählt werden.

Sind alle Map-Schritte beendet, dann wird der Shuffle/Sort-Schritt ausgeführt. Sortiert wird nach Schlüssel. Danach werden neue Blöcke gebildet und zwar ein Block pro Schlüssel-Wert. Die Reducer-Logik kann für alle Blöcke wiederum zeitgleich erfolgen. Im Bild werden die 1en addiert und damit die Wörter gezählt.

Danach wird das das Endergebnis zusammengestellt und ans aufrufende Programm zurückgegeben.