Definition Was ist Spark?

Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

Bei Apache Spark handelt es sich um ein Framework, das unter Open-Source-Lizenz öffentlich verfügbar ist. Es ist ein Top Level Project der Apache Software Foundation und entstand ursprünglich aus einem Forschungsprojekt an der University of California in Berkeley.

Anbieter zum Thema

(Bild: © aga7ta - stock.adobe.com)

Spark ermöglicht es, Datenabfragen auf große Datenmengen aus unterschiedlichen Quellen in hoher Geschwindigkeit und guter Performance auszuführen. Hierfür nutzt das Framework eine verteilte Architektur und Cluster Computing. Viele große Unternehmen unterstützen die Apache Software Foundation und treiben die Entwicklung von Spark weiter voran.

Die Architektur und die verschiedenen Komponenten von Apache Spark

Die Architektur von Spark besteht aus folgenden Einzelkomponenten, die jeweils für spezifische Aufgaben im Gesamtverbund verantwortlich sind:

  • Spark Core
  • Spark SQL
  • Spark Streaming
  • MLlib Machine Learning Library
  • GraphX

Der Spark-Core stellt die Basis des kompletten Systems dar. Er sorgt für die Bereitstellung grundlegender Funktionalitäten, die Verteilung von Aufgaben sowie für das Scheduling und die Steuerung der Ein- und Ausgabeprozesse. Die Datenstruktur im Spark Core basiert auf sogenannten RDDs (Resilient Distributed Datasets). Es handelt sich dabei um eine bestimmte Art von Datenbeständen, die sich über mehrere Rechner verteilen lassen. RDDs stammen entweder aus externen Datenquellen oder entstehen aus internen Datenverarbeitungs- und Filterfunktionen.

Mithilfe von Spark SQL wird es möglich, RDDs so zu wandeln, dass sich SQL-Anfragen ausführen lassen. Hierfür erzeugt Spark SQL aus den RDDs Data Frames als temporäre Tabellen.

Die Aufgabe von Spark Streaming besteht darin, kontinuierliche Datenströme zu verarbeiten. Hierfür entstehen aus den Datenströmen einzelne Pakete, auf denen Datenaktionen ausführbar werden.

Die MLlib Machine Learning Library macht Funktionen im Apache Spark Framework verfügbar, mit denen sich die für das Machine Learning benötigten Algorithmen bedienen lassen. Das verteilte Framework zur Berechnung von Graphen stellt die GraphX-Komponente zur Verfügung.

Die Besonderheiten von Spark

Da Spark darauf ausgelegt ist, die Daten dynamisch im Arbeitsspeicher des Server-Clusters vorzuhalten und direkt dort zu verarbeiten, arbeitet das Framework besonders schnell. In Kombination mit der Parallelisierung von Arbeitsschritten erreicht Apache Spark gegenüber Systemen, deren Datenvorhaltung auf Festplatten oder SSD-Speicher basieren, eine exzellente Performance. Mit Spark können Daten im Tera- und Petabereich analysiert werden. Hierfür unterstützt das System große Cluster bestehend aus einer Vielzahl virtueller oder physischer Server. Durch Skalierung der Spark-Cluster kann die Leistungsfähigkeit fast beliebig erweitert werden.

Eine weitere Stärke des Apache Spark Frameworks ist die Bereitstellung eines äußerst leistungsfähigen Frameworks für das Maschine Learning. Dank der Möglichkeit, große Datenmengen schnell und parallelisiert zu verarbeiten und viele iterative Schleifen binnen kürzester Zeit durchzuführen, werden aufwendige Algorithmen für maschinenbasiertes Lernen optimal unterstützt.

Mögliche Anwendungsbereiche des Frameworks

Apache Spark bietet sich aufgrund seiner Schnelligkeit und der Vielfalt an Möglichkeiten, große Datenmengen aus den unterschiedlichsten Quellen zu verarbeiten, für zahlreiche Anwendungen im Big-Data-Umfeld an. Mittlerweile ist Apache Spark eine etablierte Big-Data-Technologie und wird von vielen großen Unternehmen eingesetzt. Wichtige Anwendungsbereiche von Apache Spark sind:

  • Integration und Zusammenführung von Daten aus verschiedenen Quellen und Systemen,
  • interaktive Analysen von großen Datenmengen,
  • Analyse von Datenströmen in Echtzeit sowie
  • maschinelles Lernen.

(ID:44458950)