Apache Spark beschleunigt die Big-Data-Entscheidungsfindung
Geschwindigkeit und Flexibilität machen Apache Spark zum idealen Tool für iterative Prozesse. Spark ergänzt damit die Stapelverarbeitung von Hadoop.
Big Data ist mehr als nur Hadoop. Aber Big Data ohne Hadoop ist nicht mehr denkbar. Sein verteiltes Dateisystem (Hadoop Distributed File System, HDFS) hilft Unternehmen, unstrukturierte Daten schnell und in großen Mengen auf Standardhardware zu speichern – und das zu niedrigen Kosten.
Hadoop hat allerdings auch Schattenseiten. Das MapReduce-Programmiermodell der ersten Generation, das auf Daten in HDFS zugreift und diese analysiert, ist schwer zu erlernen und auf längere Stapelverarbeitungen ausgelegt. Das ist in Ordnung, wenn Anwendungen auf Antworten für analytische Anfragen warten können. Ist die Antwortzeit jedoch wichtig, kann MapReduce hinderlich sein.
Matt Aslett, Research Director für Data Plattforms und Analytics bei 451 Research, sagt, Hadoop habe zwar für Organisationen neue Möglichkeiten eröffnet, bislang ignorierte Daten zu speichern und weiterzuverarbeiten. Allerdings brauchen Anwendungen wie Betrugserkennung, Online-Advertising-Analytics und E-Commerce-Empfehlungen einen schnelleren Turnaround von der Datenanalyse bis zu den Schlussfolgerungen, die fürs Business wichtig sind.
„Stapelverarbeitung ist in Ordnung, aber wenn sie eine oder zwei Stunden dauert, ist das zu langsam und nicht gut für diese Anwendungen“, sagt Aslett. Die Technologie, die verspricht, einige dieser Probleme zu überwinden, ist Apache Spark, das Open Source Cluster-Computing-Framework der Apache Software Foundation. „Mit Spark und in-memory-Verarbeitung können Sie die Antwort in wenigen Sekunden erhalten. Das erlaubt in Echtzeit reagierende Anwendungen“, sagt Aslett.
Großes Interesse an Spark
„Das Interesse an Spark war für eine Weile ziemlich verhalten, aber das hat sich geändert. Zum Teil ist Spark deshalb heute so interessant, da Hadoop-Anbieter dahinter gekommen sind, möglicherweise die Hadoop-Stapelverarbeitung ergänzen zu können“, erklärt der Analytiker. „Damit steht für Echtzeit-Anwendungen mehr Arbeitsspeicher zur Verfügung. Cloudera ist ein erstes Unternehmen, das dies erkannt hat und Spark als möglichen langfristigen Ersatz für MapReduce sieht.“
Spark gibt es inzwischen immerhin schon seit sechs Jahren. Es entstand aus einem Forschungsprojekt am AMPLab der University of California in Berkeley. Im Jahr 2009 entwickelte dort der Doktorand Matei Zaharia den Code, der dann im Jahr 2010 Open Source wurde. 2013 wurde das Projekt an die Apache Software Foundation gespendet und die Lizenz auf Apache 2.0 geändert.
Im Jahr 2013 stellte AMPLab fest, dass Spark bei bestimmten Anwendungen 100-mal schneller läuft als MapReduce. Im Februar 2014 wurde Spark ein Apache Top-Level-Projekt. Spark ist Teil des Berkeley Data Analytics Stack, der durch den YARN-Ressourcen-Manager (Yet Another Resource Negotiator) ermöglicht wurde und den Zugriff auf HDFS-Daten freigibt. Er kann auch auf anderen Dateisystemen verwendet werden. Aber es gibt für Unternehmenskunden Gründe, bei Spark zurückhaltend zu sein, da es sich um Open-Source-Software handelt.
Chris Brown, Big Data Lead beim High Performance Computing Consultant OCF, sagt: „Big Data ist immer noch ein ziemlich neues Konzept – wir hatten noch nie einen Kunden, der uns bat, irgendetwas mit Spark zu erledigen.“
Brown zählt eine ganze Reihe von Problemen auf: „Erstens ist Hadoop noch unreif: Es gibt nicht Millionen von Kunden, sondern lediglich Tausende. Zweitens werden Open-Source-Projekte schnell vorangetrieben. Unternehmen hingegen möchten vor allem ihre Produktionsumgebungen stabil halten und die Dinge nicht zu schnell ändern.“
Dennoch findet Spark neben proprietärer Software seine Heimat. Postcodeanywhere, ein Lieferant von Adressdaten für populäre E-Commerce-und Einzelhandelswebsites, setzt Spark intern schon seit mehr als einem Jahr ein. Das Unternehmen möchte damit auf seiner Plattform das Kundenverhalten besser verstehen, um seinen Service verbessern zu können.
Die Geschwindigkeit und Flexibilität machen Spark zum idealen Tool für schnelle, iterative Prozesse wie maschinelles Lernen. Das konnte auch Postcodeanywhere für sich nutzen (siehe Anwendungsbeispiel unten). Chief Technology Officer Jamie Turner sagt, die wichtigsten Dienstleistungen von Postcodeanywhere basieren auf dem Microsoft .NET Framework. Die Integration von Open-Source-Code hat dazu geführt, dass es eine Weile gedauert hat, bis Spark verwendet werden konnte.
„Das ist das erste Mal, dass wir Open Source einsetzen“, sagt er. „Leider ist die Codebasis ziemlich unbeständig. Bugs in der Version eines Distributors sind in der Version eines anderen oft nicht vorhanden. Dafür hat dessen Code wieder Fehler, die andere Versionen nicht haben.“
„Wir haben gewusst: Für das, was wir wollen, sind SQL-Systeme nicht geeignet – und zwar sowohl technisch als auch bei Lizenzen und Skalierbarkeit. Aber Open-Source-Technologie ist nicht besonders gut dokumentiert. Was Sie an Lizenzkosten einsparen, müssen Sie wieder für Mitarbeiter ausgeben, die versuchen, sie zu verstehen.“
Fähigkeit zum maschinellen Lernen
Postcodeanywhere entwickelt derzeit Sparks intern genutzte Fähigkeiten für maschinelles Lernen zu einem Service für Kunden weiter, die das Kundenverhalten besser verstehen und vorhersagen wollen.
Obwohl die Performance-Vorteile von Spark unbestritten sind, laufen nicht alle Anwendungen 100-mal schneller. OCF hat den Roman Siddartha des deutschen Kultautors Hermann Hesse sowohl auf HDFS als auch auf Spark In-Memory hochgeladen, um die Zeit für das Zählen der Wörter in der 700 MB großen Datei zu vergleichen. Das Ergebnis: Hadoop erledigte die Aufgabe in 686 Sekunden. Spark hingegen schaffte das in 53 Sekunden – und war damit 13 Mal schneller.
Aber Spark bietet nicht nur Leistungsvorteile bei In-Memory-gehaltenen Daten. Auch die festplattenbasierte Analyse verbessert sich dramatisch. Im Herbst 2014 brach das Start-up Databricks, das von den ersten Spark-Entwicklern gegründet wurde, den Weltrekord im Sortieren von 100 TB Daten auf Festplatten.
Spark verwendete dafür 206 Amazon Elastic Compute Cloud Maschinen und erledigte die Aufgabe in 23 Minuten. Der bisherige Rekord wurde bis dato mit 72 Minuten von Hadoop MapReduce gehalten, das zudem 2.100 Maschinen nutzte. Spark war damit dreimal schneller und brauchte dafür nur ein Zehntel der Maschinen.
Dies hat Auswirkungen auf die Art und Weise, wie Data Scientists arbeiten. Spark ermöglicht es Anwendungen nicht nur, In-Memory-Analytics mit einer höheren Geschwindigkeit auszuführen. Es kann auch die Produktivität der Data Scientists beim Abfragen von Informationen von Festplatten und dem Entwickeln von Algorithmen erhöhen.
Sean Owen, Leiter für Data Science bei Cloudera, sagt: „Spark macht es für Data Scientists einfacher, operative Systeme zu bauen. Es kann bei der Datentransformation und dem Schreiben von Code für hochskalierbare Datenmodelle helfen. Damit ist Spark eine viel bessere Basis als das, was wir noch bis vor einem Jahr hatten.“
Zubin Dowlaty, Vizepräsident und Leiter für Innovation und Entwicklung beim Big Data Consultingunternehmen Mu Sigma, sagt, dass die IT-Abteilungen nun Spark und HDFS verwenden können, um mit neuen Datensätzen und neuen Programmiertools zu arbeiten. Das erfordere eine gewisse Umstellung. Doch das schwierigste, was geändert werden müsse, ist die Denkweise.
„Die IT muss sich selbst in Hinblick auf die Agilität, die diese neuen Tools bieten, drastisch verändern“, sagt er. „Und sie muss das Business nach dem Motto ‚think bigger‘ ändern. Computerressourcen können nun wirklich skaliert werden, so dass sich mehr Möglichkeiten ergeben. Allerdings hat die Führung und damit die Entscheidung nicht der CTO inne, sondern der CMO – oder andere C-Führungskräfte.“
Während Spark eine gute Basis für In-Memory-Analyse und maschinelles Lernen ist und gleichzeitig die Produktivität von Data Scientists steigert, verspricht Spark auch kostengünstige Unterstützung für IT-Abteilungen, die mit Big-Data-Problemen kämpfen. Die Frage ist allerdings: Werden die IT-Abteilungen in der Lage sein, ihren Geschäftskollegen den Wert dieser neuen Anwendungen und Data-Science-Konzepte nahezubringen und zu verstehen?
Anwendungsfall: Postcodeanywhere ist bereit für Maschine-Learning-Tools auf Spark-Basis
Der Adressprüfungsservice Postcodeanywhere nutzt im Wesentlichen frei verfügbare Daten, um E-Commerce-Websites zu helfen, die Adressen von Kunden zu identifizieren und diese automatisch zu vervollständigen. Kunden können den Service beispielsweise zur Verbesserung der Genauigkeit der Anschriften einsetzen und damit sicherstellen, dass mehr Produkte rechtzeitig an der richtigen Adresse ankommen. Der Dienst bietet unter anderem die automatische Ergänzung internationaler Adressen für Standardeingabemasken.
Gegründet vor 15 Jahren, probiert Postcodeanywhere immer noch neue Ideen aus, um seinen Service zu verbessern. Einer dieser Ideen ist, vorherzusagen, wann Kunden ein Serviceproblem haben und dafür vorbeugende Maßnahmen ergreifen sollten.
Matt Aslett, Research Director for Data Plattforms und Analytics, 451 Research
Das im eigenen Haus entwickelte System wurde in Scala, einer Java-ähnlichen Sprache geschrieben, und nutzt Komponenten für maschinelles Lernen von Spark zusammen mit der NoSQL-Datenbank Cassandra und Elasticsearch Queries, die alle unter Windows laufen. Das Frontend wurde in C# und dem Microsoft .NET Framework geschrieben.
Postcodeanywhere versucht, so viele Informationen wie möglich über Kunden und ihre Erfahrungen mit dem Service zu erfassen. Dies beinhaltet Kontoinformationen, Verwendungsvarianten, Fehler und Supportfälle – erweitert um andere Daten wie beispielsweise IP-Adressen, Orte, Mobilfunkbetreiber, die Netzwerkverbindung und das Betriebssystem des Kunden.
Die vielen Daten werden ständig analysiert. Durch die permanente Analyse der Daten bekommt das Maschine-Learning-Modell heraus, welche Faktoren in welcher Kombination eine negative Erfahrung signalisieren könnten. „Mit der Erfassung dieser Daten können Sie herausfinden, was wichtig ist, ohne dass Vorannahmen dies verfälschen“, sagt Turner.
Schlechte Erfahrungen vorhersagen
Die Entwicklung von Modellen, die vorhersagen, wann ein Kunde wahrscheinlich eine schlechte Erfahrung gemacht hat, ermöglicht Postcodeanywhere, Schritte zur Verbesserung der Situation einzuleiten. Dies kann bedeuten, einem Kunden neue Inhalte zu präsentieren, ein neues Produkt auf einer bestimmten Seite zu platzieren, den Preis zu reduzieren oder den Kunden proaktiv anzurufen.
„Das Modell bietet enorme Vorteile und macht für uns einen wirklichen Unterschied aus“, sagt Turner. „Es gibt uns wichtige Hinweise, wo es gut läuft und wo es weniger perfekt ist. Im Moment geht es um die Abwehr möglicher Probleme.“
Postcodeanywhere entwickelte das System als kommerzielles Produkt unter dem Namen Triggar. Mit dessen Hilfe sollen Unternehmen ihre Kunden und deren Erfahrungen besser verstehen und vorhersagen können. Dies kann von Abwehrmaßnahmen unterstützt werden, wie sie derzeit verwendet werden.
Eine solche Vorgehensweise wäre ohne Spark unpraktisch, sagt Turner. „Die Software gibt uns in einzigartiger Weise die Größe und Geschwindigkeit, die wir brauchen. Andere Ansätze sind entweder langsamer oder würden mehr kosten.“
Das System läuft auf Racks mit handelsüblicher Dell-Hardware und verarbeitet derzeit alle paar Tage ein Terabyte Daten. Turner fügt hinzu: „Das sind natürlich keine wirklich großen Datenmengen. Wir schauen uns aber aktuell schon mal bei größeren Engines um, wie Cassandra, Elasticsearch und Spark. Damit können wir auf Petabyte skalieren – denn das ist es, was wahrscheinlich bald kommen wird.“
Mehr zum Thema Apache Spark:
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?
Welchen Mehrwert die Integration zwischen SAP HANA und Apache Spark bringt.
Folgen Sie SearchEnterpriseSoftware.de auch auf Twitter, Google+ und Facebook!