Spark 2 vereinheitlicht Batch- und Streaming Data
Version 2.0 des Big-Data-Frameworks ist besser zu Standard-SQL kompatibel und optimiert Abfragen. Außerdem will das Team die Verarbeitung von Datenströmen und Batch-Daten vereinheitlichen.
Etwa zwei Jahre nach dem Start von Apache Spark 1.0 hat Databricks nun die erste Technical Preview von Version 2.0 angekündigt. Ein Fokus bei der Entwicklung lag auf der Verbesserung der SQL-Kompatibilität. Ein neuer ANSI-SQL-Parser sorgt dafür, dass Spark alle 99 Abfragen des Big-Data-Benchmarks TPC-DS verarbeitet. Spark 2.0 hat zudem die zweite Generation der Tungsten-Engine an Bord. Project Tungsten optimiert die Auslastung des Speichers und der CPU, um eine bessere Performance zu erreichen. Die zweite Generation übersetzt SQL-Abfragen in Bytecode und versucht dabei Aufrufe virtueller Funktionen zu vermeiden und die CPU-Register zum Zwischenspeichern von Daten zu nutzen.
Aufgeräumte APIs
Außerdem hat das Team die APIs vereinfacht, so ersetzt beispielsweise SparkSession die vorhandenen SQLContext und HiveContext, damit sich Entwickler bei der Verwendung der DataFrame-API keine Gedanken über den zu verwendenden Kontext machen müssen. Die alten Einstiegspunkte bleiben aus Gründen der Rückwärtskompatibilität erhalten.
Die Structured-Streaming-API erweitert die DataFrame- beziehungsweise Dataset-API. Das Team will die Verarbeitung von Batch-Daten und Datenströmen vereinheitlichen. Die neue API bringt Methoden zur ereignisgesteuerten Datenverarbeitung und dem Auswerten von "out-of-order" und "delayed data", also Daten, die in der falschen Reihenfolge oder verspätet ankommen. Mehr Details über Streaming sollen in kommenden Blog-Beiträgen erläutert werden.
Spark-Historie
Apache Spark ist ein quelloffenes Framework für verteilte Berechnungen und Datenverarbeitung auf Rechnerclustern. Es wird gerne im Big-Data-Umfeld zur Datenanalyse eingesetzt. SQL gehört laut dem Blog-Beitrag zu den meistgenutzten Interfaces, weshalb das Team einen Schwerpunkt für Version 2.0 auf die bessere Kompatibilität und Performance für SQL-Abfragen setzt. Ursprünglich war das Framework nur auf Batching ausgelegt, später folgten Funktionen zur Verarbeitung von Datenströmen.
Auch wenn Apache Spark erst 2014 die Versionsnummer 1.0 erhielt, blickt es auf eine längere Historie: Das Framework hat seine Wurzeln in einem Projekt des AMPLab der UC Berkeley. Dort wurde es 2009 gestartet und ein Jahr später unter einer BSD-Lizenz veröffentlicht. 2013 kam Spark in der Apache Software Foundation unter, wo es im Februar 2014 zum Top-Level-Projekt aufstieg. (rme)