🏠 » Lexikon » A » Apache Spark

Apache Spark

Bei Apache Spark handelt es sich um ein zunehmend populärer werdendes Framework zur Entwicklung von Cluster Computing Systemen im Big Data Umfeld.

Apache Spark entstammt einem Forschungsprojekt der Universität Berkeley. Seit 2010 ist das Framework Open-Source verfügbar. Die Weiterentwicklung erfolgt durch die Apache Software Foundation.

Apache Spark kann auf den Betriebssystemen Windows, OS X und Linux eingesetzt werden. Als Programmiersprachen stehen Java, Scala und Python zur Verfügung. Zudem lassen sich einige Komponenten auch in R einbetten und ergänzen die bereits umfangreichen Funktionen der R Bibliotheken.

Das Framework ist gut dokumentiert und bietet umfangreiche Code-Beispiele zur Implementierung und Verwendung der Spark Funktionen in der jeweiligen Programmiersprache.

Apache Spark Komponenten

In Apache Spark gibt es verschiedene, Themen-bezogene Komponenten. Diese bauen zum Teil aufeinander auf. Apache Spark besteht aus folgenden Bibliotheken:

Apache Spark Core

Die Core Bibliothek stellt grundlegende Funktionen zur Ein- und Ausgabe, das Scheduling und Datenstrukturen zur Verfügung. Wesentliche Datenstrukturen sind sogenannte RDDs, kurz für Resilient Distributed Dataset, zur Abbildung verteilter Daten auf mehreren Rechnern bzw. Rechensystemen. RDDs können aus externen Daten erzeugt oder über Transformationen generiert werden.

Apache Spark SQL

Durch die Apache Spark SQL Komponente können RDDs in berechenbare Data Frames umgewandelt werden. Hierdurch können SQL Abfragen auf den Daten, die dann temporär in Data Frames gespeichert sind, durchgeführt werden. Das SQL wird innerhalb der jeweiligen Programmiersprache einfach aufgerufen. Eine separate Datenbank ist nicht notwendig.

Machine Learning Library (MLlib)

Die MLlib enthält Algorithmen für die Umsetzung von Machine Learning Aufgabenstellungen. MLlib ist eine sehr mächtige Bibliothek und beinhaltet Funktionen zur Klassifikation, Regression, Entscheidungsbäumen, Empfehlungen mittels alternating least squares (ALS) und Clustering beispielsweise durch K-Means und Gaussian mixtures. Zudem stehen Workflow Funktionen wie Feature Transformationen mit Standardisierung und Normalisierung zur Verfügung.

GraphX

Apache Spark bietet mit GraphX die Möglichkeit Berechnungen auf Graphen  und Kollektionen durchzuführen.

Spark Streaming

Mittels Spark Streaming lassen sich Datenströme beispielsweise aus Social Media Quellen anbinden. Die Daten werden in Pakete unterteilt und stehen anschließend den vielfältigen Transformationsmöglichkeiten in Spark zur Verfügung. Streaming wird für Java, Scala und Python unterstützt.

Apache Spark in der Praxis - Apache Spark Anwendungsbeispiel

In der Finanzwelt wird Apache Spark eingesetzt, um zum Beispiel Kreditkartentransaktionen in Echtzeit zu analysieren und den potenziellen Kreditkartenmissbrauch zu erkennen. Dabei werden verschiedene Datenströme analysiert und in Relation gestellt, die wiederum durch Ansätze von Machine Learning-Modellen unterstützt werden.