Daten in Hadoop schneller analysieren

Big Data in neuen Dimensionen mit Apache Spark

| Autor / Redakteur: Thomas Joos / Nico Litzel

Auf der Webseite der Entwickler sind Beispiele der Leistungssteigerung von Spark im Vergleich zu Hadoop zu sehen.
Auf der Webseite der Entwickler sind Beispiele der Leistungssteigerung von Spark im Vergleich zu Hadoop zu sehen. (Bild: The Apache Software Foundation)

In großen Hadoop- oder Big-Data-Umgebungen reichen die Standardmöglichkeiten und Abfragen häufig nicht aus, um effizient Daten analysieren zu können. Das Apache-Projekt Spark hat sich dieses Problems angenommen und bietet eine effiziente Echtzeitanalyse von Daten in Hadoop-Clustern.

Um eines vorweg zu nehmen: Wer sich mit Big Data und Hadoop beschäftigt, kommt auf Dauer um Apache Spark nicht herum. Durch das Produkt wird die Verwendung von Hadoop in eine neue Dimension der Leistung gehoben, auf die kein Unternehmen verzichten kann, welches Big Data effizient betreiben will. Entwickelt wurde das Produkt ursprünglich im AMPLab der University of California in Berkeley.

Im Daytona Gray Sort Benchmark siegte Spark in der 100-Terabyte-Klasse mit einem neuen Weltrekord. Der alte Weltrekord lag bei 72 Minuten und wurde von einem Hadoop-MapReduce-Cluster aufgestellt. Spark hat den alten Rekord mit 23 Minuten geschlagen – und das mit einem Zehntel der Rechenkraft. Es wird schnell klar, dass Spark in Bereiche der Big-Data-Verarbeitung vordringen kann, die für Hadoop nicht erreichbar sind.

Apache Spark erweitert die Möglichkeit von Hadoop-Clustern um Echtzeitabfragen, ähnlich zu SQL. Dazu bietet das Framework In-Memory-Technologien, kann also Abfragen und Daten direkt im Arbeitsspeicher der Clusterknoten speichern. Da die Abfragen sich auch parallel auf mehrere Knoten verteilen lassen, steigt die Leistung enorm.

Einstieg in Apache Spark

Neben Hadoop bietet Spark auch einen SQL-Zugriff auf YARN, Hive und Mesos. Spark baut auf Scala, Java und Python auf. Im Fokus von Apache Spark steht vor allem Scala. Dabei handelt es sich um die zentrale Sprache in Spark. Apache Spark gehört zu den so genannten Top-Level-Projekten bei Apache, was den Einsatz in produktiven Umgebungen durchaus empfehlenswert macht. Zum Einsatz kommt Spark vor allem im Hadoop File System (HDFS). Aber auch in Cassandra, HBase und auch in Amazon S3 lassen sich die neuen Funktionen nutzen. Dadurch fällt Apache Spark auch unter die Apache-2.0-Lizenz, steht also kostenlos zur Verfügung. Kommerziell unterstützt wird Spark derzeit durch das Unternehmen Databricks, das mit den verschiedenen Hadoop-Distributoren eng zusammenarbeitet.

Apache Spark versus MapReduce

Apache Spark soll MapReduce in Hadoop ablösen und bietet eine extrem schnellere Abfragegeschwindigkeit von Daten. Die Entwickler selbst sprechen von einer hundertfachen Geschwindigkeit. Das Framework wird bereits von großen Unternehmen eingesetzt, die eine große Datenmenge verarbeiten müssen. Prominente Beispiel sind die NASA, Intel und IBM. Der Online-Musikdienst Spotify optimiert seine Wiedergabelisten ebenfalls mit Spark.

Neben der deutlich höheren Abfragegeschwindigkeit und den Pipelining-Funktionen lassen sich Abfragen mit Apache Spark auch wesentlich einfacher und schneller erstellen. Spark soll leicht in bestehende Infrastrukturen integrierbar sein und bietet die Möglichkeit, von Anwendungen zur Abfrage genutzt werden zu können. Auch hier stehen Java, Scala oder Python zur Verfügung. Nutzen Entwickler Scala empfehlen die Spark-Entwickler einige Quellen zur Einarbeitung in die Programmiersprache:

Laut den Entwicklern lassen sich Abfragen mit teilweise 80 Prozent weniger Codezeilen im Vergleich zu MapReduce erstellen. Der Code lässt sich in allen unterstützten Programmiersprachen nutzen. Erstellen Entwickler zum Beispiel Anwendungen in mehreren Programmiersprachen, lässt sich der Spark-Code überall nutzen.

Apache Spark in der Cloud nutzen

Durch die echte Verbesserung der Abfrageleistung binden auch immer mehr Hadoop-Distributoren das Framework ein, zum Beispiel Cloudera, Hortonworks und MapR. Auch in Cloud-Lösungen wie Microsoft Azure HDInsight lässt sich Spark nahtlos integrieren. Eine entsprechende Anleitung dazu stellt das Azure-Team zur Verfügung.

Natürlich lassen sich auch Hadoop-Cluster in Amazon Web Services und Datenspeicher auf Basis von Amazon S3 anbinden. Betreiben lässt sich Spark in AWS auch als Cluster auf einer EC2-VM oder direkt in YARN oder Apache Mesos integriert. Für den Betrieb in einer EC2-VM stellen die Entwickler auch Skripte für die Verwaltung zur Verfügung.

Auch wenn Apache Spark mit Hadoop zusammenarbeitet, muss auf dem Cluster kein Hadoop installiert werden. Wichtig ist nur, dass die Daten in HDFS oder NFS (Network File System) gespeichert sind, damit Spark darauf zugreifen darf.

Skalierbarkeit von Apache Spark

Die Entwickler geben an, dass sich Daten im Megabyte-, aber auch im Petabyte-Bereich verwalten und abfragen lassen. Cluster auf Basis von Apache Spark können durchaus tausende Knoten umfassen. Reicht der Arbeitsspeicher der Knoten aus, kann Spark die Daten komplett in den Arbeitsspeicher auslagern. Durch diese In-Memory-Technologie steigt die Geschwindigkeit natürlich deutlich an. Ist die Datenmenge größer als der zur Verfügung stehende Arbeitsspeicher, können die intelligenten Spark-Algorithmen aber die Daten selbst verwalten und zwischen Arbeitsspeicher und herkömmlichen Speicher transferieren.

JDBC und Machine Learning Library verbessert

Die Entwickler veröffentlichen regelmäßig neue Versionen und mit erweiterten Funktionen. Seit Version 1.1 enthält Spark auch einen JDBC-Server. Außerdem wurden neue APIs integriert, mit denen sich verschiedene Datenquellen besser anbinden lassen. Die Machine Learning Library MLLib haben die Entwickler in aktuellen Versionen ebenfalls verbessert. Durch neue Algorithmen lassen sich Daten besser abfragen. Ab Version 1.1 lässt sich auch Amazon Kinesis nutzen. Bei diesem Dienst lassen sich Daten in Echtzeit abfragen. Wer sich Möglichkeiten von Spark ansehen will, findet auf den Seiten der Entwickler einige Screencasts zum Thema.

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: 43194137 / Infrastruktur)