Technical Preview Apache Spark 2.0 wird einfacher, schneller und smarter
Anbieter zum Thema
Seit 2014 ist das maßgeblich von Databricks entwickelte Spark ein Top Level Project der Apache Software Foundation. Spark wird inzwischen von zahlreichen namhaften Unternehmen wie Amazon, IBM oder Samsung als Basis-Umgebung für Cluster-Computing eingesetzt und soll in der kommenden Version einfacher, schneller und vor allem intelligenter werden.

Rund zwei Jahre nach dem ersten Major-Release soll in wenigen Wochen Apache Spark 2.0 erscheinen. Seit einigen Tagen können Databricks-Nutzer einen Blick auf eine vorab veröffentlichte Technical Preview werfen. Wie bei technischen Vorschauen üblich, hoffen die Spark-Macher auf Feedback von Entwicklern und Anwendern, um bis zum finalen Release noch Fehler beheben zu können.
Grundsätzlich soll die neue Version Blog-Eintrag von Co-Founder Reynold Xin einfacher, schneller und smarter werden.
Was die Einfachheit betrifft, sollen die bereits bestehenden Möglichkeiten, mit Spark einfache, intuitive und ausdrucksstarke APIs erstellen zu können, in Version 2.0 noch weiter ausgebaut werden, wobei die Entwickler ihr Hauptaugenmerk auf die Standard-SQL-Unterstützung und das Zusammenführen von DataFrames und Dataset API legen wollen.
Einfacher
So soll Spark 2.0 im SQL-Bereich unter anderem mit einem neuen ANSI-SQL-Parser aufwarten. Ferner soll die neue Version auch Subqueries unterstützen. Außerdem soll Spark 2.0 in der Lage sein, sämtliche 99 TPC-DS-Queries auszuführen. Diese erweiterten SQL-Fähigkeiten reduzieren nach Ansicht von Databricks den Aufwand für das Portieren veralteter Datenbank-Anwendungen nach Spark deutlich.
Neu im Bereich der unterstützten APIs ist auch, dass „DataFrame“ künftig nur noch ein Type-Alias für „Dataset of Row“ ist, wobei das neue Dataset-Interface als Abstraktion für das Structured Streaming fungiert.
Einfacher wird es künftig auch für Nutzer des Data Frame-APIs, die bisher unsicher waren, welcher Context „SQL“ oder „Hive“ zu verwenden ist, weil künftig „SparkSession“ die beiden Contexte vereint und als neuer Einstiegspunkt fungieren soll. Trotzdem bleiben „SQLContext“ und „HiveContext“ zwecks Rückwärtskompatibilität Bestandteil von Spark.
Schneller
Für die meisten Spark-Nutzer ist die Performance eines der wichtigsten Argumente. Daher bekommt die neue Version mit der „Whole-stage code generation Spark 2.0“ ein wichtiges neues Feature: das Ausgeben von optimiertem Bytecode an die Laufzeit, der die gesamte Query in eine einzige Funktion zusammenfasst, soll virtuelle Funktions-Calls eliminieren. Zudem sollen die CPU-Register für das Zwischenspeichern von Daten genutzt werden.
Smarter
Anwendungen, die Entscheidungen in Echtzeit treffen müssen, benötigen über eine funktionierende Streaming-Engine hinaus weitere Eigenschaften. Laut Aussage von Reynold Xin hat sich in der Vergangenheit gezeigt, dass auch eine tiefere Integration des Batch-Stacks und des Streaming-Stacks erforderlich sind. Ebenso wichtig sei die Integration mit externen Lager-Systemen oder die Fähigkeit, Änderungen in der Business-Logik verarbeiten und damit End-to-End „Continuous Applications“ entwickeln zu können.
:quality(80)/p7i.vogel.de/wcms/67/9c/679c468123243c521b96a97b2cd4ac9b/51804914.jpeg)
Apache Spark
Hadoop-Nachfolger gewinnt immer mehr Unterstützer
So basiert das in Spark 2.0 enthaltene „Structured Streaming API“ auf dem Grundsatz, dass die einfachste Möglichkeit, Antworten in Datenströmen zu errechnen ist, gar nicht erst darüber „diskutieren“ zu müssen, dass es sich um einen Datenstrom handelt. Die wichtigsten Funktionen der Structured Streaming API sollen nach Aussage von Databricks daher die Unterstützung für Eventzeit-basiertes Processing und die sogenannte „Sessionization“ sein. Außerdem soll es eine enge Integration mit nicht-streamenden Datenquellen geben.
Schließlich soll die neue Version über eine Machine-Learning-Pipeline verfügen, welche Anwender in sämtlichen von Spark unterstützten Programmiersprachen speichern und laden können sollen. Ebenfalls komplett überarbeitet wurde offenbar das „Accumulator API“, das jetzt eine viel einfachere Type-Hierarchie hat.
(ID:44091984)