Apache Spark

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Apache Spark

Spark Logo
Basisdaten

Entwickler Apache Software Foundation
Erscheinungsjahr 30. Mai 2014, 1. März 2014[1]
Aktuelle Version 3.5.1[2]
(15. Februar 2024)
Betriebssystem Windows, OS X, Linux
Programmiersprache Scala, Java, Python
Kategorie Entwicklungsframework, Big-Data-Analysen
Lizenz Apache-Lizenz, Version 2.0
spark.apache.org

Apache Spark ist ein Framework für Cluster Computing, das im Rahmen eines Forschungsprojekts am AMPLab der University of California in Berkeley entstand und seit 2010 unter einer Open-Source-Lizenz öffentlich verfügbar ist. Seit 2013 wird das Projekt von der Apache Software Foundation weitergeführt[3] und ist dort seit 2014 als Top Level Project eingestuft.[4]

Architektur[Bearbeiten | Quelltext bearbeiten]

Spark besteht aus mehreren, teilweise voneinander abhängigen Komponenten:

Spark Core[Bearbeiten | Quelltext bearbeiten]

Der Spark-Core bildet die Grundlage des gesamten Spark-Systems. Er stellt grundlegende Infrastruktur-Funktionalitäten bereit (Aufgabenverteilung, Scheduling, I/O etc.). Die grundlegende Datenstruktur für alle in Spark ausgeführten Operationen wird als Resilient Distributed Dataset (RDD, auf deutsch etwa "robuster verteilter Datensatz") bezeichnet – hierbei handelt es sich um einen nach logischen Kriterien gebildeten (Teil-)Bestand von Daten, der über mehrere Rechner verteilt werden kann. RDDs können aus externen Quellen (z. B. SQL, Datei, …) erzeugt werden oder als Ergebnis aus der Anwendung verschiedener Transformations-Funktionen (map, reduce, filter, join, group, …). Die RDDs und Transformationen können als gerichteter azyklischer Graph (directed acyclic graph, DAG) verstanden werden.

Spark SQL[Bearbeiten | Quelltext bearbeiten]

Spark SQL bietet die Möglichkeit, RDDs in einen sogenannten Data Frame zu wandeln, auf dem SQL-Anfragen durchgeführt werden können. Dazu werden Data Frames als temporäre Tabellen mit einem benutzerdefinierten Tabellennamen registriert, welcher in der FROM-Klausel von SQL-Anfragen verwendet werden kann. Dies ermöglicht eine einfache Durchführung von Selektionen, Projektionen, Joins, Gruppierungen und mehr.

Spark Streaming[Bearbeiten | Quelltext bearbeiten]

Spark Streaming ermöglicht die Verarbeitung von Datenströmen, indem diese in einzelne Pakete unterteilt werden, auf welchen dann wiederum Transformationen ausgeführt werden können.

MLlib/SparkML Machine Learning Library[Bearbeiten | Quelltext bearbeiten]

MLlib und das seine Nachfolge antretende SparkML[5] sind Funktionsbibliotheken, die typische Machine-Learning-Algorithmen für verteilte Spark-Systeme verfügbar machen.

GraphX[Bearbeiten | Quelltext bearbeiten]

GraphX ist ein auf Spark basierendes, verteiltes Framework für Berechnungen auf Graphen.

Weblinks[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. projects.apache.org. (abgerufen am 8. April 2020).
  2. Release 3.5.1. 15. Februar 2024 (abgerufen am 19. März 2024).
  3. History. Apache Software Foundation, abgerufen am 14. Juni 2015 (englisch).
  4. The Apache Software Foundation Announces Apache™ Spark™ as a Top-Level Project. Apache Software Foundation, abgerufen am 14. Juni 2015 (englisch).
  5. Machine learning on HDInsight. In: Microsoft Azure. 19. Januar 2018, abgerufen am 15. November 2018 (englisch): „SparkML is a newer package that provides a higher-level API built on top of DataFrames for constructing ML pipelines. SparkML does not yet support all of the features of MLlib, but is replacing MLlib as Spark's standard machine learning library.“