zurück zum Artikel

Apache Spark 2.4: Barrier-Modus, neue Funktionen und Scala 2.12

Björn Bohn
Apache Spark 2.4: Barrier-Modus, neue Funktionen und Scala 2.12

Mit dem Barrier-Execution-Modus will das Framework für Cluster Computing die Arbeit mit Machine-Learning-Trainings einfacher gestalten.

Databricks hat Version 2.4 des für Cluster Computing entwickelten Frameworks Apache Spark veröffentlicht – parallel zum ebenfalls erschienen Databricks Runtime 5.0. Das Abarbeiten von über 1000 Tickets ist in das neue Release eingeflossen. Größte Neuerungen sind ein Scheduler zur Unterstützung des Barrier-Modus, eine Reihe eingebauter Funktionen und Funktionen höherer Ordnung sowie experimenteller Support der Programmiersprache Scala 2.12.

Der Barrier-Execution-Modus ist Teil des Projekts Hydrogen [1], das zeitgemäße Big-Data- und KI-Anwendungen zusammenführen soll. Er ermöglicht das Einbetten verteilter Training-Jobs der KI-Frameworks als Spark Jobs. Die Aufgaben verwenden in der Regel komplexe Kommunikationsmuster wie All-Reduce, sodass die Tasks in derselben Zeit ablaufen müssen. Bislang unterstützte Apache Sparks MapReduce-Muster das nicht. Der neue Barrier-Execution-Modus bringt Spark dazu, alle Trainingsaufgaben zusammen zu starten und alle bei einem Fehler entsprechend neu zu starten. Darüber hinaus führt Spark 2.4 auch Fehlertoleranz für Barrier-Aufgaben ein.

Die neu eingeführten Funktionen können komplexe Typen (zum Beispiel Array Types) direkt manipulieren, während die neuen Funktionen höherer Ordnung beispielsweise die Werte anonymer Lambda-Funktionen verändern können. Bislang war dies nur über Umwege wie den Bau einer User Defined Function (UFD) möglich. Eine Reihe Codebeispiele zeigt die neuen Funktionen [2], die deutlich performanter sein sollen.

Darüber hinaus unterstützt Spark jetzt auf experimenteller Basis die Programmiersprache Scala in Version 2.12. Wer mit 2.12 arbeiten möchte, muss die entsprechende Apache-Spark-Abhängigkeit auswählen. Damit können Nutzer Spark-Applikationen mit Scala 2.12 schreiben. Scala 2.12 bietet neben einer besseren Interoperabilität mit Java [3] 8 auch eine überarbeitete Serialisierung für Lambda-Funktionen.

Eine vollständige Liste der Neuerungen findet sich im Blogbeitrag von Databricks [4]. Die Release Notes der Databricks Runtime 5.0 bieten weitere Informationen [5].

Update, 12.11.18: Fehlerhafte Bezeichnung "höhergradige Funktionen" zu "Funktionen höherer Ordnung" geändert. (bbo [6])


URL dieses Artikels:
https://www.heise.de/-4217952

Links in diesem Artikel:
[1] https://databricks.com/blog/2018/07/25/bay-area-apache-spark-meetup-summary-databricks-hq.html
[2] https://databricks-prod-cloudfront.cloud.databricks.com/public/4027ec902e239c93eaaa8714f173bcfc/142158605138935/3773509768457258/7497868276316206/latest.html
[3] https://www.heise.de/thema/Java
[4] https://databricks.com/blog/2018/11/08/introducing-apache-spark-2-4.html
[5] https://docs.azuredatabricks.net/release-notes/runtime/5.0.html
[6] mailto:bbo@ix.de