Big-Data-Analysen mit Google Cloud Dataflow
Die Schwächen von Map-Reduce-Berechnungen
von Thomas Hafen - 06.10.2014
Da Map-Reduce im Batch-Modus ausgeführt wird, hat es allerdings immer dann Schwächen, wenn in iterativen Berechnungen ein Zwischenergebnis Ausgangspunkt einer neuen Berechnung ist.

Die Relevanz von Big Data für Unternehmen: Die Frage, ob Big Data für ihr Unternehmen relevant ist, beantwortet ein Großteil der Unternehmen eindeutig mit „Ja“.
Map-Reduce ist für den durchschnittlichen Entwickler nicht leicht zu nutzen, so Bussmann: „Auch wir bei Google haben viel Zeit damit verbracht, verschiedene Analysen zusammenzuführen und eine brauchbare Pipeline für Daten zu schaffen.“
Typische iterative Verfahren sind Algorithmen wie Page Rank und K-Means sowie logistische Regressionen. Mit ihnen lässt sich beispielsweise der Wert wissenschaftlicher Publikationen anhand der Häufigkeit von Zitatstellen berechnen oder ein selbstlernendes System implementieren, das Spam von seriösen E-Mail-Nachrichten unterscheiden oder Klimaveränderungen prognostizieren kann.

(Quelle: com! professional / Bitkom)
Um diese Einschränkungen zu umgehen, verwendet Google in Dataflow die Java-Bibliothek Flume Java (nicht zu verwechseln mit Apache Flume, einem Service zum Sammeln, Aggregieren und Transferieren großer Mengen an Log-Daten). Flume Java erlaubt es, komplexe Abfolgen von Map-Reduce-Berechnungen – die bereits erwähnten Pipelines – in einem einzigen Java-Programm zu implementieren.
Dataflow nutzt außerdem das ebenfalls von Google entwickelte Framework Mill Wheel. Es ermöglicht die fehlertolerante, hochskalierbare Analyse großer Datenmengen in Echtzeit. Mill Wheel zeichnet kontinuierlich Zwischenstände (Checkpoints) auf. Das Zwischenspeichern großer Datenmengen während ihrer Verarbeitung ist daher nicht notwendig. Auf Zeitstempeln basierende Berechnungen sind ein integraler Bestandteil des Programmiermodells von Mill Wheel, was es für den Nutzer besonders einfach macht, Auswertungen nach Zeiträumen zu definieren (zum Beispiel wöchentliche oder monatliche Zugriffe).