Dieser Artikel ist Teil unseres Guides: Big Data: Anwendung, Datenschutz und Technologie

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

Apache Spark ist mehr als nur Datenverarbeitung. Die enthaltenen Softwarebibliotheken machen Spark für eine Vielzahl von Analyseanwendungen attraktiv.

Die technologische Power der Spark-Datenverarbeitung ist beeindruckend, sagte Patrick Wendell, Software-Ingenieur bei Databricks und Mitwirkender beim Apache Spark Open-Source-Projekt während des Spark Summits 2015. Die wirkliche Stärke von Spark, so Wendell, liege in den Bibliothekskomponenten ganz oben auf der Core Engine. "Die Zukunft von Spark sind die Libraries", ergänzte er. "In die Bibliotheken hat die Community eine Menge investiert - und aus diesen kommen die wichtigsten Innovationen."

Tatsächlich wurden beim diesjährigen Spark Summit 2015 ganz prominent Fallstudien vorgestellt, in denen Nutzer erklärten, wie sie die Bibliotheken in ihren Spark-Analytics-Anwendungen nutzbringend einsetzen.

Spark enthält vier Bibliotheken

Die Apache-Spark-Plattform stellt vier verschiedene Bibliotheken bereit: Spark SQL, Spark Streaming, die graphische Verarbeitungsbibliothek GraphX und die Library MLlib für maschinelles Lernen. Diese Bibliotheken integrieren Algorithmen und Programmierfunktionen und wurden entworfen, um die Datenaufbereitung, Exploration und Analyse zu optimieren und zu beschleunigen. Die Bibliotheken ermöglichen es Benutzern, bestimmte Aufgaben zu automatisieren und sparen einiges an Codier-Arbeit ein, die üblicherweise erforderlich ist.

In die Bibliotheken hat die Community eine Menge investiert - und aus diesen kommen die wichtigsten Innovationen,

Patrick Wendell, Software-Ingenieur bei Databricks.

Spark SQL lässt sich zum Beispiel verwenden, um mit SQL-Abfragen "einige der Schwachstellen unseres bestehenden Geschäfts zu lösen", sagt James Peng, Principal Architect beim chinesischen Suchmaschinen-Anbieter Baidu. "Dies kann den Entscheidungsprozess drastisch verbessern."

Apache Spark wird von Baidu seit etwa einem Jahr eingesetzt. In diesem Zeitraum hat sich Spark SQL innerhalb des Unternehmens zu einer der beliebtesten Funktionen der Spark-Technologie entwickelt. Das Team von Peng nutzt es, um Hive Tabellen von Baidu zu öffnen. Diese ziehen die Daten von den Hadoop-Clustern auf die Website, damit Produkt-Manager die beliebtesten Suchbegriffe verfolgen und damit Verkaufs- und Marketing-Initiativen antreiben können. Dies ermöglicht es ihnen, beliebte Suchbegriffe zu identifizieren und so ihre Verkaufserfolge zu steigern.

Spark SQL beschleunigt Analytics-Auswertungen

Vor der Spark-Bereitstellung mussten die Produktmanager die Queries, die sie verwenden wollten, an Hadoop-Ingenieure senden und dann auf die Antworten warten. Das dauerte in der Regel etwa zehn Minuten. Nun aber können diejenigen, die SQL beherrschen, die Daten in Hive selbst abfragen, was in etwa 30 Sekunden deutlich schneller geht, sagt Peng.

Der Hauptvorteil von Spark SQL ist, dass damit auf eine einheitliche Art und Weise zusätzlich zu den Hive Tabellen eine Vielzahl von strukturierten Datentypen abgefragt werden kann, einschließlich Parquet- und JSON-Dateien. Der größte Nachteil, sagt Peng, war während der Einführung, dass das Team von Baidu Probleme mit der Skalierung von Spark-SQL-Abfragen für sehr große Batch-Jobs hatte. Das geht mit dem Programmier-Framework MapReduce in Hadoop leichter. Er ist jedoch zuversichtlich, dass dieses Problem in zukünftigen Versionen der Bibliothek gelöst werden wird.

In einem Interview sagt Ali Ghodsi, Vice President für Engineering and Produkt-Management bei Databricks, dass jeder einzelne Kunde von Spark-Anbietern auch Spark SQL verwendet – was Spark SQL zur beliebtesten Bibliothek macht. Gleich dahinter, fügt er hinzu, liegt MLlib. Die Bibliothek für maschinelles Lernen enthält eine Reihe von ausgeklügelten Algorithmen, die verwendet werden können, um verschiedene Arten von analytischen Modellen auszuführen: Regressions- und Cluster-Analysen etwa oder Entscheidungsbäume. Das könne die Hemmschwelle, einige fortgeschrittene Methoden wie Predictive Analytics und Data Mining zu nutzen, deutlich senken.

MLlib wird beispielsweise beim Analytics Team des Medien- und Unterhaltungsunternehmen NBCUniversal eingesetzt. Christopher Burdorf, Software-Ingenieur bei NBCUniversal, sagt, dass das Analytics Team MLlib verwendet, um besser entscheiden zu können, welche Mediendateien von den Distributions-Servern heruntergenommen werden können.

Die Distributions-Server unterstützen den Kabel-TV-Betrieb bei NBC und speichern für die Ausstrahlung in weit entfernten Teilen von Europa und Asien Hunderte Terabyte Dateien von lokalen Kabelnetzbetreibern. Doch die Pflege einer derartigen Single-Master-Liste ist praktisch unmöglich, sagt Burdorf. Wenn NBC alle Dateien auf den Servern beließe, wäre die Kapazität bald erschöpft - nimmt man zu viele raus, riskiert das Unternehmen, Kabelnetzbetreiber zu verärgern, die vielleicht die gelöschten Shows senden möchten.

Früher verwendete das Analytics-Team einfache, selbst entwickelte Algorithmen, die alle Dateien auf den Servern gelesen haben und anschließend vorschlugen, dass etwas entfernt werden kann. Der Algorithmus basierte auf vordefinierten Funktionen wie dem Alter einer Datei und der Anzahl der Tage, die seit der letzten Ausstrahlung vergangen sind. Aber das Lesen all dieser Dateien war laut Burdorf unglaublich ressourcenintensiv.

Maschinelles Lernen automatisiert Analytics

Um das Problem in den Griff zu bekommen implementierte Burdorf zusammen mit Kollegen eine Spark-Analytics-Anwendung. Mit der Anwendung konnten sie einen MLlib Algorithmus so "trainieren", dass dieser selbstständig erkannte, welche Merkmale eine von den Servern zu löschende Datei haben sollte. So können sie vorhersagen, welche Dateien auf der Grundlage allgemeiner Eigenschaften entfernt werden sollten. "Wir konnten damit eine echte Performance-Beschleunigung erzielen, weil es nun nicht mehr notwendig ist, alle diese Dateien ständig zu überprüfen", sagt Burdorf.

Allerdings fügt er hinzu, dass die Programmierer erst verschiedene Modelle testen mussten, bevor sie eines gefunden hatten, das genau gearbeitet hatte. Als das Modell in Betrieb genommen wurde, fanden sie zudem, dass die Server mit temporären Dateien zugemüllt wurden, so dass das System an einem Wochenende abstürzte. Deshalb mussten sie zusätzlich ein separates Programm schreiben, das diese temporären Dateien löschte.

Mehr zum Thema Apache Spark

Das Big-Data-Framework Apache Spark beschleunigt Analytics.

Databricks und IBM: Was steckt hinter den Cloudversionen von Apache Spark?

Welchen Mehrwert die Integration zwischen SAP HANA und Apache Spark bringt.

Neue Big-Data-Technologie: Apache Spark 1.0 soll Leistungsschub bringen.

Ein anderes oft genutztes Modul ist Spark Streaming. Die Spark Streaming Modul ist darauf ausgerichtet, den Prozess der Erfassung, Analyse und Visualisierung von Streaming Daten zu vereinfachen. Es laufen kleine Batch-Jobs, die kollektiv Daten nahezu in Echtzeit verarbeiten, so dass Benutzer Anwendungen bauen können, die Informationsströme besser nutzen.

Die Online-Automobil-Plattform Autotrader verwendet Spark Streaming, um den Site-Traffic zu visualisieren. Die Plattform überwacht damit die Wirkungen von Werbeanzeigen und checkt, ob die Website nach Updates wieder einwandfrei funktioniert. Für den diesjährigen Super Bowl beispielsweise baute das Analytics-Team von Autotrader ein Echtzeit-Dashboard, das die Auswirkungen auf den Website-Traffic nach Anzeigenschaltungen von Automarken verfolgte. Damit konnten sie den Effekt bestimmter Anzeigen granularer auf einem höheren Level quantifizieren als in den vergangenen Jahren, in denen sie die Daten nur in einstündigen Segmenten visualisieren konnten.

Jon Gregg, leitender Analytics Ingenieur bei Autotrader, sagt, das Super Bowl Dashboard wäre für die Werbeabteilung von großem Wert gewesen. Die Datenanalysten des Unternehmens verwenden aber eine weitere Spark-basierte Anwendung - ähnlich dem vorgestellten - um den Web-Traffic laufend zu überwachen. Diese hilft ihnen, potenzielle Anomalien nach einem Website Update zu erkennen: Wenn der Traffic zusammenbricht, ist die Wahrscheinlichkeit hoch, dass irgend etwas nicht stimmt.

Aktuell überlegen sie, Dashboards zu entwickeln, die von Spark mit Analytics-Daten versorgt werden und die dann Führungskräfte für die Überwachung des Website-Traffics nutzen können.

Graph Processing führt Teile zusammen

GraphX ist die Grafik-Computation-Bibliothek von Spark. Sie enthält Algorithmen, mit denen Benutzer Daten in graphischer Form strukturieren, suchen und anzeigen lassen können - in Abhängigkeit von den Beziehungen zwischen verschiedenen Objekten. Der Softwareentwickler Autodesk, Anbieter von 3D-Design-Tools für Fertigung, Architektur und Bauwesen, nutzt GraphX beispielsweise, um die Beziehungen zwischen den verschiedenen Teilen beim Design grafisch abzubilden. Die Grafik-Funktionalität ermöglicht es dem Softwarenutzer, den Design-Katalog während der Gestaltung eines Entwurfs nach bestimmten Teile abzusuchen. Dabei sieht er auch andere Teile, die er möglicherweise ebenfalls verwenden kann.

Die GraphX Implementierung funktioniert so, dass die Software jedes Teil, über das Autodesk Informationen hat, durchsucht. Es kann Teile ihrer Funktion entsprechend klassifizieren - beispielsweise Zahnräder oder Federn. Dann gruppiert das Spark-System Teile in Cluster, die häufig zusammen verwendet werden. "Weil dies ein Graph ist, können wir die Dinge erkunden", sagt Yotto Koga, Softwarearchitekt bei Autodesk.

Wie so häufig, gab es auch beim Spark-Framework einiges zu lernen. Koga sagt, Autodesk hatte eine älteres, eigenentwickeltes System, das einige der Prozesse ausführen konnte, die man jetzt mit GraphX erledigt. Doch die Portierung der früheren Klassifikationen nach Spark verursachte einige Probleme.

Aber Anbieter wie Databricks und andere aus der Spark-Community entwickeln die Technologie weiter, und die Benutzer sind zuversichtlich, dass die bestehenden Fehler, die auf der Spark-Konferenz erörtert wurden, endlich beseitigt werden. "Spark hat bereits großes Potenzial gezeigt", sagt Baidu-Mitarbeiter Peng. "Aber unser Ehrgeiz mit Spark endet nicht bei SQL. Wir wollen, dass es für alle allgemeinen Berechnungen verwendet wird."

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

Erfahren Sie mehr über Big Data

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close