[ad_1]
Das Big-Data-Framework arbeitet nativ mit Kafka 0.10 zusammen und bringt zahlreiche neue Algorithmen für maschinelles Lernen. Außerdem haben die Macher die SQL-Funktionen erweitert.
Knapp ein halbes Jahr nach dem Erscheinen der letzten Hauptversion haben die Macher nun Apache Spark 2.1 veröffentlicht. Die Neuerungen konzentrieren sich auf die Bereiche Datenströme und maschinelles Lernen und damit auf zwei Kernbereiche von Spark 2.0, das unter anderem Structured Streaming seinerzeit noch als experimentelle API einführte.
Die API dient der Erstellung sogenannter “continuous applications”, die den kontinuierlichen Datenfluss im Design berücksichtigen. Sie müssen beispielsweise Echtzeitversionen vorhandener Batch-Jobs ermöglichen oder sicherstellen, dass der dauerhafte Daten-Update einer Abfrage nicht im Weg steht. Bei der Transformation von Streaming Data müssen die Anwendungen prüfen, dass Daten weder verloren gehen noch doppelt verwendet werden.
Wasserzeichen und Dateiformate in Datenströmen
Zu den Neuerungen in Spark 2.1 gehören Event-time Watermarks, mit der Anwendungen erkennen, ab wann ein Ereignis als veraltet gilt. Ein ähnliches Konzept verwendet auch Apache Flink, das ebenfalls Watermarking für Datenströme ermöglicht. Die Structured Streaming API ermöglicht neuerdings das Lesen aller dateibasierten Formate wie JSON, Text oder CSV. Außerdem arbeitet Spark 2.1 nun mit Kafka 0.10 zusammen.
Neben den Änderungen unter der Haube haben die Macher auch die Wartbarkeit verbessert. So können Entwickler GUIDs (Globally Unique Identifier) zur eindeutigen Identifizierung von Streaming-Abfragen verwenden. Das Log-Format ist für menschliche Betrachter besser lesbar, um ihnen Einblick in laufende Systeme zu gewähren. Außerdem ist das JSON-Format für Checkpoint-Logs zukunftssicher gestaltet, sodass Checkpoint-Logs auch für künftige Spark-Versionen gültig bleiben.
Neue Algorithmen für MLib und SparkR
Die Bibliotheken MLib für maschinelles Lernen und GraphX für Graphen kennen nun die drei neue Algorithmen multinominale logistische Regression, LSH (Locality-sensitive Hashing) und personalisiertes PageRank. Die im Zusammenspiel mit der Programmiersprache R verwendete Bibliothek SparkR erhält insgesamt acht neue Algorithmen, darunter GMM (Gaussian Mixture Models) und Random Forest.
Auch die SQL-Funktionen haben die Macher erweitert und führen in Version 2.1 unter anderem das Konzept der Tabellenwertfunktionen (TVF, table-valued functions) ein. Die erste eingebaute TVF range gibt einen Zeilenbereich zurück. Außerdem können Entwickler nun binäre Literale verwenden und wie in anderen Datenbanksystemen MINUS als Ersatz für EXCEPT DISTINCT nutzen.
Spark im Kontext
Apache Spark ist ein quelloffenes Framework für verteilte Berechnungen und Datenverarbeitung auf Rechnerclustern. Es wird vor allem im Big-Data-Umfeld zur Datenanalyse eingesetzt. Nach wie vor gehört offensichtlich SQL zu den meistgenutzten Interfaces. Ursprünglich war das Framework nur auf Batching ausgelegt, später folgten Funktionen zur Verarbeitung von Datenströmen. Mit Version 2.0 begann das Team damit Batch und Streaming Data zu vereinheitlichen. Bei der Verarbeitung von Echtzeitdaten setzen viele Entwickler auf eine Kombination aus Spark mit dem ursprünglich aus dem Hause LinkedIn stammenden Apache Kafka.
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. Weitere Details zu Spark 2.1 lassen sich dem Blogbeitrag zur Veröffentlichung entnehmen.
Siehe dazu auf heise Developer:
- Apache Spark 2.0: Zweiter Akt einer Erfolgsgeschichte
- Spark versus Flink – Rumble in the (Big Data) Jungle
(rme)
[ad_2]
Read more on: Source