Googles Crawl- und Protokolldaten wuchsen über das hinaus, was ein einzelner Server aufnehmen oder verarbeiten konnte, und die naheliegende Antwort war ein größerer, teurerer Server oder ein maßgeschneidertes paralleles Programm, das niemand schreiben wollte.

Die Bibliothek von Dean und Ghemawat, erstmals im Februar 2003 geschrieben, ließ einen Programmierer nur zwei Funktionen bereitstellen; die Laufzeitumgebung teilte die Eingabe auf, verschickte sie, sortierte nach Schlüssel und wiederholte alles, was fehlschlug.

Bis Ende 2004 betrieb Google Hunderte verschiedene MapReduce-Programme auf bis zu Zehntausenden von Maschinen für Aufgaben von Google News und Zeitgeist bis hin zu großen Graph- und Machine-Learning-Jobs.

Der Artikel, veröffentlicht auf der OSDI 2004 und später in den Communications of the ACM, wurde zur Vorlage für die Big-Data-Verarbeitung und wurde als Open-Source-Hadoop neu implementiert, was das Modell zum Branchenstandard machte.

Berechnung zu den Daten bringen und sie in Map+Reduce aufteilen

Die Aufteilung einer Aufgabe in Map und Reduce ermöglicht es gewöhnlichen Ingenieuren, zu parallelisieren, ohne Threads oder Message Passing zu schreiben.

Die Daten auf derselben Maschine wie ihre Berechnung zu halten, vermeidet es, Terabytes über das Netzwerk zu schicken.

Das Wiederholen fehlgeschlagener Map-Aufgaben lässt einen Verbund unzuverlässiger PCs wie eine einzige verlässliche Maschine wirken.

Wenn die Daten zu groß für eine einzelne Maschine sind, zerlege die Aufgabe in peinlich parallele Teile und lass einen Scheduler Hardwarefehler verbergen, statt eine größere, teurere Maschine zu kaufen.

MapReduce wurde Googles Standard-Batch-Modell und über Hadoop die Engine, die die Big-Data-Ära in der gesamten Industrie begründete. Google fügte später höherstufige Systeme hinzu (FlumeJava, Dataflow), als interaktives SQL das zweistufige Batch-Modell ablöste, und MapReduce selbst wurde verdrängt, doch seine Kernidee, dass eine große Aufgabe aus zwei Funktionen bestehen kann, wurde dauerhaft.

DEN BELEGEN FOLGEN

Die Quellen

  1. MapReduce: Simplified Data Processing on Large Clusters (OSDI 2004) USENIX · usenix.org
  2. Sorting the World: Google Invents New Way to Manage Data Wired · wired.com ·