Big-Data-Analysen mit Google Cloud Dataflow

Die Schwächen von Map-Reduce-Berechnungen

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.
In diesem Fall müssen alle Knoten zunächst alle Schlüssel-Wert-Paare erzeugt und kombiniert haben, um dann im zweiten Schritt erneut die Map-Reduce-Phase zu durchlaufen. Die Definition und das Management dieser Data Pipelines ist aufwendig und die Ausführung unflexibel.
Map-Reduce ist für den durchschnittlichen Entwickler nicht leicht zu nutzen, so Bussmann: „Auch wir bei Goo­gle 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.
Auch bei interaktiven Datenanalysen stösst das Batch-Verfahren von Map-Reduce an seine Grenzen, etwa wenn grosse Mengen Log-Files zur Fehleranalyse nach Mustern durchsucht werden sollen.
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 grosser 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 ausserdem das ebenfalls von Google entwickelte Framework Mill Wheel. Es ermöglicht die fehlertolerante, hochskalierbare Analyse grosser Datenmengen in Echtzeit. Mill Wheel zeichnet kontinuierlich Zwischenstände (Checkpoints) auf. Das Zwischenspeichern grosser 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).




Das könnte Sie auch interessieren