Gerne beraten wir Sie auch telefonisch & geben Ihnen eine kostenfreie persönliche Auskunft zu Ihrem Projekt.

X

Apache Spark: Machen Sie mehr aus Ihrem Big Data Beständen!

Wir leben in einer Welt der Daten und das betrifft nicht nur unser privates Leben, sondern auch das geschäftliche Umfeld: Der Business Intelligence Bereich ist für viele Unternehmen nicht mehr wegzudenken. Das Sammeln und Auswerten großer Datenmengen ist für Unternehmen inzwischen essenziell, um den Unternehmenserfolg sicherzustellen. Die stetig zunehmende Menge an Daten und Informationen benötigt allerdings spezialisierte Lösungen zur Datenanalyse. Apache Spark ist eine Big Data Plattform für die Interaktionen mit großen Daten, die in fast allen möglichen Situationen Einsatz findet – und dadurch Mehrwert für Unternehmen schafft. Häufig ist für Entscheidungsträgern aber nicht eindeutig, was sich hinter Apache Spark Data Science genau verbirgt oder welche Möglichkeiten Apache Spark für das eigene Business bietet. Wir möchten mit diesem Artikel deshalb darstellen, was Apache Spark ausmacht und für welche Anwendungsfälle Apache Spark sinnvoll sein kann.

Die Wahl des richtigen Frameworks ist nur eines von vielen Aspekten für eine erfolgreiches Big Data Projekt. Nutzen Sie unsere Expertise im Bereich Big Data Analytics und nutze Sie unser Kontaktformular für ein unverbindliches Angebot!

Was ist Apache Spark?

Apache Spark (auch einfach nur Spark genannt) ist eine Big Data Technologie, welche sich für komplexe und aufwendige Berechnungen und Datenverarbeitungen besonders eignet, wie z.B.:

  • Streaming Daten
  • ETL Batch Jobs
  • SQL Anfragen auf großen Datensets
  • IoT
  • Machine Learning

Durch starke Parallelisierung der Arbeit ermöglicht Spark große Performancesprünge und kann daher sehr gut in den wichtigsten Programmiersprachen wie R, Python, Java, Scala eingebunden werden:

Programmiersprachen für Spark
Programmiersprachen in Apache Spark in 2016, Quelle: Hubspot

Welche Funktionen bietet Apache Spark?

Apache Spark beinhaltet nicht nur ein Tool zur Datenverarbeitung, sondern verfügt auch über verschiedene Pakete oder Libraries für SQL, Machine Learning, Streaming und Grafiken:

Was ist Apache Spark
Aufbau von Apache Spark

Apache Spark findet Einsatz in vielen Bereichen eines Unternehmens, wie z.B.

  • Business Intelligence
  • Customer Intelligence
  • Data Warehousing
  • User-Facing Services
  • Security
  • Fraud Detection

Wie ist Apache Spark entstanden?

Apache Spark wurde durch Matei Zaharia in 2009 entwickelt, zuerst als ein Projekt im AMPLab in Berkeley Universität in Kalifornien.

Spark kann man als eine Alternative zu MapReduce sehen. MapReduce ist ein Distributed Processing Framework, das Google benutzte, um Webinhalten zu indexieren. Das Ziel von Apache Spark war es, alle Vorteile von MapReduce beizubehalten, dabei aber das finale Produkt effizienter und benutzerfreundlicher zu gestalten.

In Mai 2014 wurde die Version 1.0 von Apache Spark veröffentlicht. Spark erhielt schnell die Anerkennung von großen Unternehmen wie z.B. IBM, Huawei oder Databricks. Apache Spark wird stetig weiter entwickelt: für Ende 2019 wurde Version 3.0 von Apache Spark annonciert.

Hadoop vs. Spark: Wo liegt der Unterschied?

Hadoop und Spark sind beide die Big Data Technologien und man könnte sich fragen, inwiefern Apache Spark denn Hadoop ersetzen kann.

Die Antwort ist, dass beide Technologien unterschiedliche Bereiche von Big Data Funktionalität abdecken: Spark kann man als vor allem Processing Engine sehen, wobei Hadoop historisch als Datenspeicher gewachsen ist. Die Tabelle unten listet die wichtigsten Unterschiede zwischen Hadoop und Spark auf:

Hadoop MapReduce:
Daten speichern
Das Logo für Hadoop Spark
Spark: Daten verarbeiten

Das Logo für Apache Spark Data Science

GeschwindigkeitWurde für sehr große Datenmengen entwickelt, ist schneller als traditionelle SystemeCa. 100x schneller als MapReduce im Arbeitsspeicher und ca. 10x schneller auf dem Festplattenspeicher
ProgrammierspracheGeschrieben in JavaGeschrieben in Scala
FunktionalitätBatch Processing von DatenBatch, real-time, interaktive, iterative und grafische Verarbeitung von Daten
Speicherung der DatenStreng Datei-basiertIn-Memory Speicherung von Daten
Resource ManagementYARNStandalone Cluster
Datenaufbereitung ModellAufgabe wird als Ganzes zuerst bewertet und kann dadurch optimiert werden – weiterer Geschwindigkeitsgewinn
Besondere VorteileEinfache Handhabung durch high-level Programmiersprachen
Spark ist nicht dazu gedacht, Hadoop zu ersetzen, sondern dessen Funktionalitäten zu erweitern. Spark ist kein direktes Äquivalent für die relationale Datenbank-Systeme und unterstützt die ACID Eigenschaften nicht. Der Hauptvorteil von Spark ist seine Geschwindigkeit, die auf bestehenden System wie Hadoop sehr hohe Performance-Vorteile bringt.

Wie werden die Daten in Spark behandelt?

Spark verfügt über drei APIs für die Behandlung tabellarischer Daten. Jede API hat eigene Anwendungsgebiete sowie Vor- und Nachteile:

Spark APIs
APIs für die Daten Verarbeitung
  • RDD ist ein low-level API und ist historisch das älteste API. RDD erlaubt eine parallelisierte Behandlung (Transformation und Action) der Daten, die über den Clusterknoten verteilt sind. Dieses API eignet sich vor allem für unstrukturierte Daten wie z.B. Streams von Texten oder Medien, die schemafrei sind (also keine Spaltenstruktur haben).
  • DF ist ein deklarativer API. Er baut auf RDD auf, besitzt aber mehr Struktur, wie z.B. Metadaten und Spaltenformate, um die Behandlung von großen Datenmengen durch Abstraktion zu erleichtern. DF ist inhaltlich an R und Python Pandas Data Frames angelehnt.
  • DS beinhaltet stark typisierte Data Frames, d.h. der Typisierungsprozess findet hier schon beim Entwickeln statt. Anders als RDDs, eignen sich DFs und DSs für die Analyse von tabellarisch strukturierten Daten.

Hadoop Spark SQL

Hadoop Spark SQL ist ein Spark Modul für die Arbeit mit strukturierten Daten. Spark unterstützt Hive-SQL und erlaubt es, über Spark die SQL Funktionalitäten zu nutzen. Das bedeutet, dass man die klassische SQL Syntax auch in Spark weiterhin benutzen kann.

Hadoop Spark SQL: Eine typische Syntax
Eine typische Syntax mit Hadoop Spark SQL

Anwendungsbeispiele

Apache Spark wird mittlerweile in fast allen möglichen Branchen eingesetzt. Auch die Tech-Giganten wie Apple, Facebook oder Microsoft nutzen Apache Spark Data Science.

Einige Beispiele:

  • Uber nutzt die Bog Data Technologien wie Spark um aus Millionen unstrukturierten Daten über Taxi Buchungen, Routen und Fahrtbewertungen einen strukturierten Datensatz zu erstellen, und die Daten dann zu analysieren und für die Optimierung von Prozessen nutzen zu können.
  • TripAdvisor nutzt die von den Portalanwendern täglich produzierte Terabytes von Daten, um die beste Routen, Sehenswürdigkeiten oder Restaurants zu empfehlen. Das alles benötigt die vorherige Strukturierung und Modellierung von den Daten, was durch Apache Spark ermöglicht wird.
  • In der Forschung können unstrukturierte und auf ersten Blick nicht zusammenhängende Daten zusammengefügt werden, um dann wichtige Ereignisse wie z.B. Erdbeben vorherzusagen.

Fazit

Auch Ihr Unternehmen kann von Einführung von Apache Spark Data Science Plattform profitieren. Novustat Experten beraten Sie gerne zu den Big Data und Software Architektur Themen, die für Ihre Bedürfnisse am besten angepasst sind.

Weiterführende Quellen

Wikipedia Artikel über Apache Spark

Die offizielle Spark Webseite

Artikel über Spark auf InfoWorld

Infografik über Spark