Mario Meir-Huber Microsoft Österreich

Mit Apache Spark kann man sehr schnell und einfach Big-Data-Anwendungen erstellen. HDInsight ist hierfür ein geeigneter und einfacher Service.

Eines der beliebtesten Themen im Big-Data-Umfeld ist Apache Spark. Spark ist eine Processing Engine, die oftmals mit Hadoop betrieben wird. Hierbei gibt es das Versprechen, dass sich die Performance im Vergleich zu klassischen MapReduce-Ansätzen stark verbessert. Doch was genau ist nun eigentlich Apache Spark?

Apache Spark ist einer der Projekttypen, die man im Hadoop-Cluster bei HDInsight auswählen kann. Vor allem hinsichtlich der Performance hat Spark Pluspunkte aufzuweisen. Nicht zuletzt CloudSort, die Benchmark für verteilte Algorithmen in der Cloud, spricht eine klare Sprache. Hierbei wird gemessen, wie viel die Sortierung von einem Terabyte Daten kostet. Spark „verursacht“ hierfür 1,44 Dollar, was enorm günstig und effizient ist. Man mag diesbezüglich zwar noch behaupten, dass solche Benchmarks theoretischer Natur sind, doch Spark hat sich auch bereits in Kundenprojekten seitens Microsoft bewiesen. In diesem Rahmen konnte bei OneTax die Anzahl der Nodes im HDInsight-Cluster halbiert werden, was enormen Kosteneinsparrungen in Kundenprojekten entspricht.

Spark hat ferner die gleichen Vorteile wie Hadoop hinsichtlich der Skalierung: Es skaliert linear zur Last. Der aktuell größte Cluster auf Basis von Spark besteht aus 8 000 physischen Knoten. Die technische Grundlage für Spark bietet hierbei die Programmiersprache Scala, die eine Weiterentwicklung von Java ist. Spark-Programme werden deshalb meist in Scala oder Java entwickelt. In den letzten Jahren hat sich jedoch auch Python als wichtiger Bestandteil des Spark-Projekts etabliert. Spark selbst ist jedoch nicht als Konkurrent zu Hadoop zu verstehen: Spark läuft als YARN-Anwendung in Hadoop und ist damit ein wesentlicher Bestandteil von Hadoop. Ferner verwendet Spark die Daten, die in HDFS abgespeichert wurden.

Die Spark-Architektur und -Komponenten

Die vier Hauptkomponenten von Spark sind Abbildung 1 zu entnehmen. Hierbei handelt es sich um Spark SQL, Spark Streaming, MLlib und GraphX. Jede dieser Komponenten setzt den Fokus auf unterschiedliche Dinge.

Abb. 1: Apache Spark und Komponenten

Abb. 1: Apache Spark und Komponenten

Spark SQL bietet eine Datenzugriffssyntax, wie wir sie bereits aus SQL kennen. Damit lassen sich Datenanalysen mit SQL-Befehlen erweitern, was die Arbeit oftmals erleichtert. In Scala (oder einer der anderen unterstützten Programmiersprachen für Spark) kann man damit einfach den Scala-Code mit SQL erweitern. Spark SQL bietet JDBC und OCBC an, was wiederum die Integration in Anwendungen wesentlich vereinfacht. Ebenso kann man Hive mit Spark verwenden. Spark SQL kann auch als „SQL on Steroids“ bezeichnet werden, da es eine enorme Skalierbarkeit in großen Clustern ermöglicht.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Windows Developer 10.17 - "Datenarbeit mit Durchblick"

Alle Infos zum Heft
579811144Apache Spark in der Cloud: HDInsight machts möglich
X
- Gib Deinen Standort ein -
- or -