Das MapReduce

Das MapReduce wurde 2003 entwickelt, um die Verarbeitung großer Datensätze auf massiv parallele Weise zu ermöglichen. Ziel des MapReduce ist es, die Umwandlung und Analyse großer Datenmengen zu vereinfachen und den Entwicklern die Möglichkeit zu geben, sich auf Algorithmen statt auf die Datenverwaltung zu konzentrieren. Das Modell ermöglicht die einfache Implementierung von datenparallelen Algorithmen. Es gibt eine Reihe von Implementierungen dieses Modells, darunter der in C++ programmierte Ansatz von Googleund die in Java programmierte Hadoop von Apache. Beide laufen auf großen Clustern von Standard-Hardware in einer Peer-to-Peer-Umgebung, in der nichts geteilt wird.

Das MapReduce besteht aus zwei Phasen: der Map-Phase und der Reduce-Phase, ausgedrückt durch die Map-Funktion bzw. die Reduce-Funktion. Die Funktionen werden vom Programmierer festgelegt und sind so konzipiert, dass sie mit Schlüssel/Wert-Paaren als Ein- und Ausgabe arbeiten. Bei den Schlüsseln und Werten kann es sich um einfache Datentypen handeln, wie z. B. eine ganze Zahl, oder um komplexere, wie z. B. eine kommerzielle Transaktion.
Zuordnung
Die Map-Funktion, die auch als Map-Task bezeichnet wird, verarbeitet ein einzelnes Schlüssel/Wert-Eingabepaar und erzeugt einen Satz von Schlüssel/Wert-Zwischenpaaren.
Reduzieren
Die Reduktionsfunktion, auch als Reduktionsaufgabe bezeichnet, besteht darin, alle in der Map-Phase erzeugten Schlüssel/Wert-Paare, die denselben Zwischenschlüssel haben, zu nehmen und null, ein oder mehrere Datenelemente zu erzeugen.

Beachten Sie, dass die Map- und Reduce-Funktionen sich nicht mit der Parallelisierung und Ausführung von MapReduce befassen. Dafür ist das MapReduce zuständig, das sich automatisch um die Verteilung der Eingabedaten sowie um die Planung und Verwaltung von Map- und Reduce-Aufgaben kümmert.