Einfacher, schneller, smarter

Apache Spark 2.0 ist da

| Autor / Redakteur: Thomas Drilling / Nico Litzel

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

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.

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.

Apache Mesos erreicht Version 1.0

Neue HTTP-API und vereinheitlichter Containerizer

Apache Mesos erreicht Version 1.0

03.08.16 - Auch wenn zahlreiche namhafte Unternehmen wie Twitter, Netflix oder das NASA-Projekt JPL das bereits seit 2009 entwickelte freie Cluster-Framework Mesos schon länger produktiv nutzen, haben die Entwickler erst jetzt die erste Hauptversion 1.0 veröffentlicht. Diese wartet unter anderem mit einer neuen HTTP-API sowie einem vereinheitlichten Containerizer auf. lesen

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)

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 44199295 / Infrastruktur)