Die MapReduce Pizzabestellung

Dieser Artikel bezieht sich auf einen Teilaspekt eines Vortrages im Rahmen des Arbeitskries 4.0 zum Thema „Verteilte Datenanalysen“. In diesem Vortrag wurden Techniken zur Datenanalyse für große Datenmenge u.a. mit der Datenbank MongoDB und dem Framework Apache Spark demonstriert. Im folgenden wird anhand eines vereinfachten Beispieles ein Paradigma für die verteilte Datenverarbeitung beschrieben.

 

Stellen Sie sich folgendes vor: Sie nehmen an einem sehr produktivem Workshop teil. Die Teilnehmer werden in verschiedene Gruppen aufgeteiltl, die sich in ihre separaten Arbeitsräume zurückziehen um dort ihre Lösungen zu erarbeiten. Sie sind so in ihre Arbeit vertieft, dass der Workshopleiter beschließt Pizza zu bestellen. Er gibt in jeden Raum einen Zettel mit der Bitte den Namen des Teilnehmers und die gewünschten Pizzastücke zu notieren.

BlogPizza1

 

 

 

 

 

 

 

 

Um eine Abrechnung zu vereinfachen soll die Pizza für Teilnehmer aus einem anderen Geldtopf bezahlt werden als die Mitarbeiterpizza. Aus diesem Grund beschließen zwei Mitarbeiter sich die Arbeit zu teilen: Ein Mitarbeiter schreibt alle Teilnehmer auf seine Zettel und der andere Mitarbeiter notiert sich die Mitarbeiterbestellungen.

BlogPizza2

 

 

 

 

 

 

 

 

In einem letzten Schritt summiert jeder der bearbeitenden Mitarbeiter seine Zahlen auf und gibt die Bestellung auf.

 

 

 

 

 

 

 

 

In diesem Beispiel stecken die drei Kernkonzept des MapReduce Paradigmas, das von Google eingeführt wurde.  In Phase I (Map) werden Wertepaare aus einem eindeutigen Identifizierer (Key) und dem zugehörigen Wert (Value) gebildet. Die Sortierung der <key, value> Einträge nach ihrer Zugehörigkeit ergibt Informationsblöcke mit passenden Informationen, die als Datenstruktur für das lokale Arbeiten optimal sind, weil sie nicht über das Netzwerk verteilt sind. Diese Phase II wird Shuffle genannt. In der finalen Phase III (Reduce) wird definiert wie diese Informationsblöcke zusammengefasst werden sollen.

Das Ergebnis ist eine schnelle Datenverarbeitung von großen Datenmengen. Oder eben eine Pizza. Guten Appetit!