Suche
Sparkling Data

Apache Spark 2.4: Verbesserte Integration mit Deep Learning Frameworks und Unterstützung für Kubernetes

Dominik Mohilo

© Shutterstock / Marko Poplasen

Die neue Version des Cluster-Computing-Frameworks Apache Spark ist veröffentlicht worden und hat wieder etliche Neuerungen und Verbesserungen im Gepäck. Darunter der neue Barrier Execution Mode, eine Überarbeitung des Kubernetes Supports und die experimentelle Unterstützung für Scala 2.12

Fast zweieinhalb Jahre ist es her, seit der 2.x-Release-Zyklus von Apache Spark gestartet wurde. Seitdem ist viel Wasser den Rhein heruntergeflossen, viele neue Features und Verbesserungen sind eingepflegt worden. Das heißt allerdings nicht, dass die Arbeit an dem Big-Data-Framework abgeschlossen ist – weit gefehlt. Über 1100 Tickets wurden für das aktuelle Release geschlossen, darunter erneut etliche, die Vorschläge und Wünsche zur Verbesserungen der Usability sowie Stabilität beinhalteten.

Apache Spark 2.4.0 – Das ist neu

Barrier Execution Mode

Das wichtigste Feature der aktuellen Spark-Version ist der neue Barrier Execution Mode, der als Teil des Hydrogen-Projektes entwickelt wurde. Die Initiative wurde ins Leben gerufen, um Big Data und Künstliche Intelligenz zu vereinen – kein Wunder also, dass der Barrier Execution Mode genau an der Stelle ansetzt: Er ermöglicht die Einbettung verteilter Trainingsjobs aus KI-Frameworks als Spark-Jobs.

Der neue Ausführungsmodus sorgt dafür, dass Apache Spark 2.4 sämtliche Trainings-Tasks (etwa MPI Tasks) gleichzeitig starten und restarten kann, sofern Fehler auftreten. Zudem ist ein neuer Fehlertoleranzmechanismus für Barrier Tasks Teil des Barrier-Execution-Modus. So wird kein kompletter Restart notwendig, wenn ein solcher Task mitten in der Ausführung fehlschlägt.

Experimenteller Scala 2.12 & verbesserter Kubernetes Support

Die bessere Interoperabilität von Scala 2.12 mit Java 8 im Vergleich zu vorhergehenden Versionen ist, gerade im Hinblick darauf, dass Java 8 die wohl am häufigsten genutzte aktuelle Java-Version ist, ein guter Grund, Scala 2.12 auch mit Apache Spark nutzen zu wollen. Spark 2.4 macht diesen Traum – vorerst als experimentelles Feature – wahr.

Mit Scala 2.12 sollen Nutzer viele neue Features und Bugfixes genießen können, die sie sich schon lange wünschen. Unter anderem bringt die sehr gute Interoperabilität mit Java 8 eine verbesserte Serialisierung von Lambda-Funktionen.

Auch die Unterstützung von Kubernetes wurde intensiv überarbeitet: Unter anderem können Python- und R-Entwickler PySpark- bzw. SparkR-Anwendungen mit Apache Spark 2.4 endlich auf Kubernetes ausführen. Der Client Mode ist ebenfalls nun verfügbar und das Mounting der Kubernetes-Volumina emptyDir, hostPath, persistentVolumeClaim wird unterstützt.

Funktionen höherer Ordnung

Apache Spark 2.4 bringt eine Reihe neuer nativer Funktionen, darunter einige Funktionen höherer Ordnung, die dabei helfen sollen, komplexe Datentypen einfacher zu verarbeiten. Dazu zählen vor allem Funktionen für map– oder array-Typen. Eine Liste der neuen Funktionen findet sich auf der Homepage von Databricks.

Weitere Informationen zum aktuellen Release von Apache Spark gibt es in den offiziellen Release Notes und auf dem Blog von Databricks. Herunterladen kann man Apache Spark 2.4 auf der Downloadseite des Projektes.

Was ist Apache Spark?

Das AMPLab der University of California in Berkeley veröffentlichte 2010 ein neues Open-Source-Analysewerkzeug. Spark wurde 2013 zum Apache-Projekt und hat seither eine beeindruckende Entwicklung durchgemacht. Im Kern dreht sich bei Spark alles um die so genannten Resilient Distributed Datasets (RDD): verteilte, fehlertolerante, parallelisierbare Datenstrukturen. Diese können in Verbindung mit vielen verschiedenen Modulen genutzt werden, bspw. zur Verarbeitung von Graphen (GraphX), zum Streaming (Kafka, HDFS, Flume, ZeroMQ, Twitter) oder für Machine Learning basierend auf der MLib. Neben Scala unterstützt Spark auch Python und R als Programmiersprachen. Das erleichtert Data Scientists den Einstieg, die bereits Erfahrung mit einem der beiden Sprachen gesammelt haben.

Geschrieben von
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare

Hinterlasse einen Kommentar

2 Kommentare auf "Apache Spark 2.4: Verbesserte Integration mit Deep Learning Frameworks und Unterstützung für Kubernetes"

avatar
400
  Subscribe  
Benachrichtige mich zu:
Michael Meilicke
Gast

Hallo Herr Mohilo,

im vorletzten/letzten Absatz taucht „Neben Scala unterstützt [..] Sprachen gesammelt haben.“ doppelt auf.

Gruß
Micha