Spark versus MapReduce: Welchen Weg soll die Enterprise-IT gehen?

Apache Spark setzt an, MapReduce in Firmen-Big-Data-Architekturen zu überholen. Wie ist der aktuelle Stand bei Tempo und Umfang von Apache Spark?

Heute sind Big-Data-Entwickler hungrig nach Geschwindigkeit und Einfachheit. Wenn es deshalb um die Auswahl eines...

Processing Frameworks für neue Anwendungen geht, die auf ihren Hadoop-Umgebungen laufen sollen, bevorzugen sie zunehmend Apache Spark – und nicht MapReduce.

So lautet zumindest die Botschaft von Big-Data-Anbietern, die ihren Fokus auf Apache Spark legen und Spark die Rolle des „next big thing“ im Bereich Big Data geben.

Auf dem Spark Summit in San Francisco im Juni 2015 sprach Mike Olson, Chief Strategy Officer bei Cloudera, vom „atemberaubenden“ Wachstum von Spark und der tiefgreifenden Veränderung bei den Kundenpräferenzen. Seine Firma, ein Hadoop Distributor, könne diese Veränderung bezeugen.

„Wir erwarten schon bald, dass Spark das dominierende Allzweck-Processing-Framework für Hadoop sein wird“, sagt er. „Wenn Sie in diesen Tagen eine Allzweckmaschine haben möchten, werden Sie sich für Apache Spark entscheiden, nicht für Apache MapReduce.“

Olson hat seine Worte sorgfältig gewählt, insbesondere die Verwendung des Ausdrucks Allzweck. Worauf es ihm dabei ankommt: Zwar gibt es immer noch viel Platz für spezielle Hadoop Processing Engines, wie zum Beispiel Apache Solr für die Suche oder Cloudera Impala für SQL-Abfragen. Aber der Kampf um die Vorherrschaft bei den allgemeinen Processing Frameworks, die Entwickler für die Generierung einer breiten Vielfalt analytischer Anwendungen nutzen können, ist nun auf einen Zweikampf reduziert worden – und den wird Spark aus Sicht von Olson gewinnen.

Einfach gesagt: Spark löst auf elegante Weise eine ganze Anzahl von jahrelangen Kritikpunkten, die Entwickler an MapReduce auszusetzen haben – insbesondere die mit hoher Latenz erfolgenden Antworten im Batch-Modus.

„Es ist seit langer Zeit bekannt, dass MapReduce ein gutes Arbeitspferd für die Welt war, in der Hadoop groß wurde“, sagt Arun Murthy, Gründer und Architekt bei Hortonworks. Er weist darauf hin, dass die Technologie in den Labors von Google entwickelt wurde, um einen sehr speziellen Anwendungsfall anzugehen: die Websuche. Mehr als ein Jahrzehnt später hat sich die Technologie weiter entwickelt – aber vielleicht nicht weit genug, um den Unternehmen Appetit auf Big-Data-Anwendungen zu machen.

„Die Stärke von MapReduce war, dass es sich flexibel genug für weitere Anwendungsfälle einsetzen ließ“, fügt Murthy hinzu. „Aber es wurde auch klar, dass MapReduce tatsächlich zwar viele Anwendungsfälle bearbeiten kann – aber nicht in optimaler Art und Weise. So wie MapReduce anderen Technologien den Garaus machte, ist es nun ganz natürlich, dass neue Technologien kommen und MapReduce ergänzen oder verdrängen.“

Geschwindigkeit und Einfachheit

Was aber ist so gut an Spark? Der Hauptvorteil, den Spark den Entwicklern bietet, ist die Geschwindigkeit. Spark-Anwendungen sind eine Größenordnung schneller als solche, die auf MapReduce basieren – und zwar um den Faktor 100. Das behauptet Mathei Zaharia, CTO bei Databricks, einer Firma, die Spark in der Cloud anbietet, wobei Spark nicht auf Hadoop läuft, sondern auf der Cassandra-Datenbank.

Wichtig zu wissen ist auch, dass Spark auf einer Vielzahl von Dateisystemen und Datenbanken laufen kann, darunter das Hadoop Distributed File System (HFDS). Einiges macht Spark daher besser als MapReduce. Das Wichtigste: Es führt die meisten Operationen In-Memory aus und kopiert Datensätze aus dem verteilten physischen Speicher in den viel schnelleren logischen RAM. MapReduce liest im Gegensatz dazu von Festplatten und schreibt die Daten dorthin wieder zurück. Das macht MapReduce so langsam und Spark so schnell: Während sich der Festplattenzugriff auf ein MB an Daten im Bereich von Millisekunden bewegt, lässt sich der Zugriff auf die gleiche Datenmenge In-Memory – also im RAM – in Sub-Millisekundenraten messen. Mit anderen Worten: Spark macht Big-Data-Anwendungen viel schneller.

Gartner-Analyst Nick Heudecker sagt: „Kürzlich habe ich mit einem Kunden gesprochen, der ein sehr großes Hadoop-Cluster hat und Spark in einem Pilotprojekt testete. Er konnte damit einen Job von vier Stunden [mit MapReduce] auf 90 Sekunden [mit Spark] verkürzen.“

Für viele Unternehmen ist diese Verbesserung höchst attraktiv, sagt Heudecker. „Es bedeutet, dass sie pro Tag statt zwei Analysen einer bestimmten Datenmenge so viele Analysen machen können, wie sie wollen.“

Auf dem Spark Summit im Juni 2015 beschrieb Brian Kursar, Data Science Direktor bei Toyota Motor Sales in den USA, wie sein Team damit die Analyseanwendung für die Kundenzufriedenheit verbessern konnte. Diese Applikation wird bei Toyota Motor Sales für die Auswertung von etwa 700 Millionen Datensätzen von Social-Media-Daten, Umfragedaten und Call-Center-Anfragen genutzt. Das Ziel dabei ist, Probleme bei der Kundenabwanderung zu erkennen und zu identifizieren, so dass die Mitarbeiter gegebenenfalls einschreiten können.

Mit MapReduce dauerte die Analyse 160 Stunden. Das sind fast sieben Tage, moniert Kursar. „Zu diesem Zeitpunkt kommen die mit der Datenanalyse gewonnen Einsichten ein wenig zu spät“. Der gleiche Verarbeitungsjob mit Spark konnte in nur vier Stunden abgeschlossen werden.

Andere Vorteile von Spark im Vergleich zu MapReduce sind seine relativ einfache Bedienung und die große Flexibilität. Das ist kaum überraschend, da Mathei Zaharia Spark für seine Promotion an der University of California Berkeley entwickelt hat – als Reaktion auf die Beschränkungen von MapReduce. Spark hat er während eines Sommerpraktikums bei Hadoop-Anwender geschrieben.

„Was ich in diesen Organisationen sah, war, dass die Benutzer mit Big Data viel mehr machen wollten, als mit MapReduce möglich war“, sagt er. „MapReduce hatte eine Menge von Einschränkungen – weder waren interaktive Abfragen möglich noch konnte es mit fortschrittlichen Algorithmen etwa zum maschinellen Lernen umgehen. Diese Limitierungen waren für mich sehr enttäuschend. Ich wollte deshalb diese Probleme beheben und es gleichzeitig für Benutzer einfacher machen, um große Datenmengen zu analysieren und daraus einen Nutzen zu ziehen.“

Die meisten Nutzer stimmen Zaharia zu, dass Spark entwickler- und anwenderfreundlicher ist als MapReduce, einschließlich Toyotas Kursar, der sagt: „Die API ist deutlich simpler zu bedienen als die von MapReduce.“

In einem aktuellen Blog behauptet Justin Kestelyn, Chef für Developer Relations bei Cloudera, dass Spark „reichhaltige, ausdrucksvolle und gleichwertige“ APIs für Scala, Java und Python habe und damit das Codevolumen um den Faktor zwei bis fünf im Vergleich zu MapReduce reduzieren könne.

Aber diese einfache Handhabung bedeutet nicht, dass die Flexibilität geopfert wird. Darauf wies Forrester-Analyst Mike Gualtieri in einem im letzten Jahr veröffentlichten Bericht hin. Im Gegenteil, schreibt er, Spark beinhaltet Spezialwerkzeuge für die Anwendungserstellung, die separat oder auch zusammen verwendet werden können.

Zu diesen Werkzeugen gehören Spark SQL für analytische Abfragen auf strukturierten, relationalen Daten; Spark Streaming für das Datenstreaming in nahezu Echtzeit unter Verwendung von „Micro-Batches“; MLib für maschinelles Lernen; und GrapX für die grafische Darstellung von Daten.

Apache Spark noch jung

Eine signifikante Hürde für Spark ist jedoch seine relative Unreife. Bei der Finanzdienstleistungsgesellschaft Northern Trust ist das Team von Chefarchitekt Len Hardy überzeugter Nutzer der Cloudera Hadoop Distribution. Die Mitarbeiter verwenden für ihre Implementierungen eine Vielzahl von Werkzeugen, einschließlich Hive (für Data Warehousing), Flume (für umfangreiche Protokollaggregation) und Cloudera Impala (für die Ausführung von SQL-Abfragen).

Aktuell aber hält Hardy sich noch mit dem Einsatz von Spark in seiner Produktionsumgebung zurück. „Wir lassen derzeit noch die Finger von Spark“, sagt er. „Aber das ist nur eine Frage der Reife. Die Technologie verspricht wirklich Großes, und wir werden sie auch einsetzen, daran gibt es keinen Zweifel. Zur Zeit führen wir gerade einen Machbarkeitsnachweis durch.“

Doch er will noch abwarten: „Wir brauchen für unsere Enterprise-Datenplattform, auf der wir Daten an Partner und Kunden für unternehmerische Entscheidungen ausliefern, Werkzeuge, die grundsolide sind, und ich habe nicht das Gefühl, dass Spark schon so weit ist.“

Diese Vorsichtsmaßnahme ist nicht unberechtigt. Alle großen Hadoop-Anbieter bemühen sich, ihren Enterprise Support für Spark zu verbessern. Aber wie Gartner-Analyst Heudecker betont: „Kommerzieller Support für Spark erfolgt fast immer im Bundle mit anderen Daten-Management-Produkten. Das ist ein Nachteil: Informations-Manager und Business-Analytics-Profis müssen sich bewusst sein, dass es das Entwicklungstempo von Spark für die paketorientierten Lieferanten schwierig macht, ständig die neuesten Komponentenversionen zu unterstützen.“

APIs und Best Practices sind immer noch in Arbeit, fügt Heudecker hinzu, und Lieferanten dürften gehörig damit kämpfen, alle verfügbaren Komponenten des Spark-Frameworks gleichermaßen zu unterstützen. Enterprise-Anwender sollten deshalb unbedingt darauf achten, mit Spark nicht unternehmenskritische Anwendungen oder nicht-unterstützte oder nur teilweise unterstützten Funktionen zu implementieren.

Olson von Cloudera gibt zu, dass Spark eine noch junge Technologie ist: „Es ist noch sehr früh – es gibt noch eine Menge Arbeit zu erledigen, beispielsweise bei den Sicherheitsanforderungen.“

Auch einige Monate nach dem Spark-Gipfel bleibt die Botschaft haften, dass in nicht allzu ferner Zukunft die meisten neuen Analyseanwendungen für Hadoop mit Spark und nicht mit MapReduce gebaut werden.

„Spark wird das dominante Werkzeug für Hadoop werden – und dieser Wendepunkt wird eher früher als später kommen“, sagt Olson. „Aktuell kann ich keine Vorhersage machen, wann dies eintreten wird, aber ich würde sagen, dass einige unserer Kunden – vor allem im Bereich Finanzdienstleistungen und Konsumgüter – diesen Wendepunkt bereits erreicht haben. Viele andere werden folgen.“

Mehr zum Thema Apache Spark:

Ist Apache Spark die Antwort für Cloud- und Big-Data-Anwendungen?

Apache Spark beschleunigt die Big-Data-Entscheidungsfindung.

Built-In Bibliotheken machen aus Apache Spark ein mächtiges Analytics-Tool.

Das Big-Data-Framework Apache Spark beschleunigt Analytics.

Databricks und IBM: Was steckt hinter den Cloud-Versionen von Apache Spark?

Folgen Sie SearchEnterpriseSoftware.de auch auf Twitter, Google+ und Facebook!

Artikel wurde zuletzt im Februar 2016 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Erfahren Sie mehr über Hadoop

0 Kommentare

Älteste Beiträge 

Passwort vergessen?

Kein Problem! Tragen Sie Ihre E-Mail-Adresse unten ein. Wir werden Ihnen eine E-Mail mit Ihrem Passwort schicken.

Ihr Passwort wurde an die folgende E-Mail-Adresse gesendet::

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchStorage.de

SearchNetworking.de

SearchDataCenter.de

Close