Einfacher, schneller, smarter Apache Spark 2.0 ist da

Autor / Redakteur: Dipl. -Ing. Thomas Drilling / Nico Litzel |

Unter dem Motto „einfacher, schneller, smarter“ haben die Databricks-Entwickler die finale Version 2 des populären In-Memory-Frameworks Spark veröffentlicht, dessen Code-Basis bei der Apache Software Foundation beheimatet ist.

Anbieter zum Thema

Spark 2.0 wird einfacher, schneller und performanter
Spark 2.0 wird einfacher, schneller und performanter
(Bild: Apache Software Foundation, Databricks)

Apache Spark – 2010 initial am AMPLab der University of California in Berkeley entwickelt, seit 2013 ein Apache-Projekt und seit 2014 Top-Level-Projekt der ASF – liegt jetzt offiziell in Version 2.0 vor. Viele der Neuerungen eines der populärsten Big-Data-Frameworks waren Experten allerdings schon bekannt, weil das federführend hinter der Entwicklung von Spark stehenden Unternehmen Databricks im Juni dieses Jahres eine Preview veröffentlicht hatte.

Was Spark ist

Spark wird von zahlreichen namhaften Unternehmen wie Amazon, IBM oder Samsung als Basis-Umgebung für Cluster-Computing produktiv eingesetzt. Im Zentrum des Spark-Frameworks stehen sogenannte Resilient Distributed Datasets (RDD). Hierbei handelt es sich um verteilte, fehlertolerante und parallelisierbare Datenstrukturen, die sich mit zahlreichen verschiedenen Modulen nutzen lassen, wie beispielsweise Streaming (Kafka, HDFS, Flume, ZeroMQ, Twitter), Graphen-Verarbeitung (GraphX) oder Machine Learning. Spark unterstütze ursprünglich die Programmiersprache Scala, inzwischen aber auch Python, Java und R.

Spark kann nicht nur auf Basis von Hadoop/YARN, sondern auch standalone laufen und außerdem auch auf durch Apache Mesos verwalteten Hardware-Clustern.

Neuerungen in Spark 2.0

In der Version 2.0 ist das Cluster-Computing-Frameworks einfacher, smarter und schneller geworden, wozu laut Databricks über 300 Mitwirkende mehr als 2.500 Patches, Bugfixes und auch neue Features beigesteuert haben. So kann Spark 2.0 dank Support für SQL 2003 z. B. alle 99 TPC-DS-Queries laufen lassen. Verbessert haben die Entwickler zudem den nativen SQL-Parser, der nun ANSI-SQL und HIVE QL unterstützt.

Ferner bringt Spark 2.0 eine native CSV-Datenquelle mit, die auf dem Spark-CSV-Modul von Databricks basiert. Weitere neue Funktionen sind ein Off-Heap-Speichermanagement für das Caching und das Ausführen von Runtimes sowie die Unterstützung eines Hive-ähnlichen Bucketings.

SparkR

Darüber hinaus bringt Spark 2.0 drei neue, von Anwendern definierte Funktionen dapply, gapply und lapply für SparkR mit. Während sich mit dapply und gapply Partitions-basierte UDFs z. B. für partitioniertes Model Learning nutzen lassen, kann lapply beispielsweise Hyperparameter tunen.

Ferner haben die Entwickler für maschinelles Lernen mit R den Algorithmus-Umfang erweitert. Außerdem ist das Laden und Speichern jetzt für alle ML-Modelle verfügbar. Darüber bekommen generalisierte lineare Modelle mit Spark 2.0 mehr Verknüpfungsfunktionen und Families.

Aktualisierte APIs

Zu den Neuerungen von Spark 2.0 gehören auch aktualisierte und neue APIs. So haben die Entwickler DataFrame und Dataset für Java und Scala zusammengelegt. Für Python und R hingegen ist nun DataFrame die bevorzugte Programmierschnittstelle. Das DataFrame-basierte API ist zudem nun auch in MLib das primäre API. Neuer Einstiegspunkt für DataFrame- und Dataset-APIs ist jetzt SparkSession, das damit SQLContext und HiveContext ersetzt. Allerdings sollen die beiden letztgenannten Einstiegspunkte der Rückwärtskompatibilität wegen weiter Teil von Apache Spark bleiben.

Bessere Performance

Eine wichtige neue Funktion für das Verbessern der Performance ist „Whole-Stage Code Generation“. Dabei wird optimierter Bytecode an die Runtime ausgegeben, welcher das gesamte Query in eine einzige Funktion zusammenfasst. Das vermeidet virtuelle Funktions-Calls und die CPU-Register lassen sich vorteilhaft für das Zwischenspeichern von Daten verwenden.

Laut Databricks wurde die Performance gegenüber Version 1.6 deutlich verbessert
Laut Databricks wurde die Performance gegenüber Version 1.6 deutlich verbessert
(Bild: Databricks)

Artikelfiles und Artikellinks

(ID:44199295)