Was ist Apache Spark?

Spark ist ein verteiltes In-Memory-Compute-Framework. Es bietet eine Plattform für die Aufnahme, Analyse und Abfrage von Daten. Zusätzlich zu den High-Level-APIs in Java, Scala, Python und R verfügt Spark über ein umfassendes Ökosystem von Anwendungen, einschließlich Spark SQL (strukturierte Daten), MLlib (maschinelles Lernen), GraphX (Diagrammdaten) und Spark Streaming (Mikro-Batch-Datenströme).

Apache Spark wurde 2009 an der UC Berkeley entwickelt und ist sehr gut für interaktive Abfragen und Analysen von extrem großen Datensätzen geeignet. Es wird von AWS auf Elastic-MapReduce und Databricks in der Cloud bereitgestellt, kann jedoch auch On-Premise eingesetzt werden. Spark lässt sich zur Bewältigung von Petabyte an Daten auf Tausende von Geräten skalieren.

Anwendungsfälle für Apache Spark

Flexibilität

Da Spark eine Plattform ist, verfügt es über zahlreiche APIs mit einem umfassenden Ökosystem an Anwendungen. Spark funktioniert sehr gut mit einer großen Vielzahl von Datensätzen. Insofern ist es gut geeignet, um viele Anforderungen innerhalb eines einzigen Unternehmens zu erfüllen: Data Engineering, Data Science, Analytik und Business Intelligence.

Spark ist eine sehr gute Wahl für Anwender, die Zeit und Geld in einen Hadoop-Cluster investiert haben, da es sich leicht in die bestehende Infrastruktur einfügen lässt und auf YARN, Mesos oder im Standalone-Modus laufen kann. Spark lässt sich auch mühelos mit AWS Elastic Mapreduce (EMR) hochfahren, wodurch es zu einer relativ kostengünstigen Option für einmalige oder geplante Batch-Jobs wird.

Ausgereifte SQL-Syntax

Ab der Version Spark 2.0 ist Spark ANSI SQL:2003-kompatibel. Dadurch unterstützt Spark SQL SQL-Operationen, die in anderen Dialekten nicht verfügbar sind.

Größeres Entwicklernetzwerk

Spark wird von einer Vielzahl von Entwicklern und Anbietern unterstützt. Infolgedessen hat Spark einen raschen und kontinuierlichen Entwicklungszyklus.

Wofür ist Spark besonders gut geeignet?

Sehr kleine Analyseanfragen

SparkSQL funktioniert besonders gut mit kleineren Analyseanfragen. Altscale konzentriert sich als Business-Intelligence-Anbieter auf Hadoop-Lösungen und hat in einem aktuellen Benchmark Impala, Hive auf Tez, Spark und Presto miteinander verglichen. Dabei schnitt Spark (zusammen mit Impala) für kleinere Datensätze besonders gut ab.

Sehr große Analyseanfragen

Spark kann auch besonders große Datensätze mit Milliarden von Zeilen äußerst gut bewältigen. Spark übertrifft typischerweise andere SQL Engines beim Zusammenfügen von Tabellen mit Milliarden von Zeilen. Spark hat im AltScale-Benchmark 2016 auch alle anderen SQL Engines bei Tests mit sehr großen Datensätzen übertroffen.

Data-Science-Workflows

Spark lässt sich nahtlos mit anderen Tools aus dem Toolkit von Datenwissenschaftlern wie R (über SparkR) und Python (über PySpark) integrieren und wird mit einer Bibliothek für maschinelles Lernen (MLib) ausgeliefert. Dies macht Apache Spark zu einem Favoriten für Datenwissenschaftler, die an der Erforschung von auf Hadoop gespeicherten Daten interessiert sind.

Preisliche Erwägungen

Spark wird von den Anbietern Databricks und Amazon Web Services vertrieben.

Databricks berechnet die Kosten für Spark nutzungsabhängig, wobei eine kostenlose Testversion der erhältlichen Plattformpläne auf Anfrage verfügbar ist. Die unterschiedlichen Preismodelle von Databricks sind:

  • Community: Kostenlos
  • Databricks for Data Engineering (planmäßiger Service)
  • Databricks for Data Analytics (Nutzung der Funktionalität mit einem Databricks-Notebook)
  • Enterprise (wird mit zahlreichen Sicherheitsfunktionen für Unternehmen geliefert)

Sie können einen Amazon Elastic MapReduce (EMR) Cluster hochfahren, der eine Vielzahl von Konfigurationsoptionen mit variablen Preisen unterstützt. Da es sich bei Spark um eine In-Memory-Datenbank handelt, wird die Auswahl von speicheroptimierten Instanztypen empfohlen.

Hadoop Spark-Architektur

Datentypen

Die Kern-APIs von Spark können unstrukturierte, semistrukturierte und strukturierte Daten verarbeiten. Spark SQL arbeitet speziell mit den beiden letztgenannten, bei denen ein gewisses Schema vorhanden ist. Die native Datenstruktur von Spark ist das Resilient Distributed Dataset (RDD). RDDs sind im Endeffekt verteilte und fehlertolerante Datensammlungen. Dataframes sind die Lingua franca zwischen Spark und Spark SQL. Sie fügen den Daten eine Spaltenstruktur hinzu und sind analog zu den Datenrahmen in R und Python (Pandas).​​​​​​​

Maximal empfohlene Datengröße

Spark kann theoretisch auf Tausenden von Rechnern skaliert werden und ist so in der Lage ist, wirklich große Datenmengen im Petabyte-Bereich zu verarbeiten. Es kann auch Avro-, Text- und Spaltenformate aufnehmen und daher viele verschiedene Arten strukturierter Daten verarbeiten.

Nutzung von Spark

Prozess für neue Daten

Sie können neue Daten mit JSON oder Parsern für abgegrenzte Textdateien direkt in Spark SQL einlesen.​​​​​​​ Sie können Daten von lokalen Dateisystemen, HDFS, S3, RDBMS und anderen einlesen. Databricks hat ein Redshift-to-Spark-Tool veröffentlicht, mit dem Sie Daten von Amazon Redshift über S3 zu Spark migrieren können, um diese auf beliebige Weise abzufragen.

Alternativ können Sie eine Pipeline einrichten, die zunächst Spark oder Spark-Streaming zur Verarbeitung unstrukturierter Daten verwendet, ein explizites Schema für die Daten definieren und in einen Datenrahmen konvertieren. Sie können dann die strukturierten Daten über eine Reihe von Treiberprogrammen, einschließlich der Spark-Shell, abfragen, indem Sie eine Anwendung über beeline oder JDBC einreichen.

Wartung

Spark verfügt über viele Parameter und Konfigurationseinstellungen für die Anpassung der Leistung. Für Anfänger kann dies eine gewisse Herausforderung darstellen. Zwar läuft Spark selbstverständlich mit den Standardeinstellungen, jedoch wird eine optimale Leistung wahrscheinlich eine Anpassung erfordern.​​​​​​​

Die meisten BI-Tools stellen die Verbindung über JDBC oder ODBC her und können daher keine Scala- oder Python- oder DataFrame-Operationen ausführen. Stattdessen geben sie SQL an den Hive-Metastore weiter. Dies reduziert die Flexibilität dessen, was Anwender von Spark und ihrem bevorzugten BI-Tool erwarten können. Anders gesagt müssen BI-Tools das Schema kennen, um mit den zugrunde liegenden Daten irgendetwas anfangen zu können.

Entdecken Sie Ihre Liebe zur Analytik.

Business Intelligence, Big-Data-Analyse oder eine 360°-Ansicht Ihrer Kunden.
Was auch immer Sie benötigen, Looker steht Ihnen zur Seite. Sprechen Sie einfach mit unseren Datenexperten.

Demo anfordern