Cloud & Hosting

Hadoop vs. Apache Spark: Was leisten die Petabyte-Plattformen?

Viele Unternehmen nutzen Plattformen wie Apache Hadoop und Apache Spark für die Geschäftsdatenanalyse. Wo die Unterschiede zwischen den beiden liegen, erfahren Sie in diesem Artikel.

An Big Data Analytics führt für Unternehmen kaum noch ein Weg vorbei. Ihre eigenen Daten verraten Ihnen, welche Produkte für Kund:innen zukünftig interessant sein könnten und wo sich neue Geschäftsfelder eröffnen. Mit Apache Hadoop und Apache Spark bekommen Sie die passende Plattform für Ihre Analysen.

Inhaltsverzeichnis

Apache Hadoop oder Apache Spark?

Beide Apache-Produkte sind gut geeignet, um große Datenmengen zu speichern und zu analysieren. Nach Schätzungen von Expert:innen gibt es weltweit mehrere zehntausend Unternehmen und Behörden, die entweder Apache Hadoop oder Apache Spark verwenden oder eine Kombination aus beiden betreiben.
Mit Apache Hadoop erhalten Sie ein ausgereiftes Produkt, das auch große Computer-Cluster problemlos managt und seine gespeicherten Daten dabei gut schützt – sowohl gegen Verlust als auch gegen Diebstahl.
Apache Spark ist in vielen Punkten neuer und moderner. Das macht sich bemerkbar bei den einfacher zu handhabenden Programmierschnittstellen sowie bei der weiter entwickelten Analyse-Logik.
Eine große Stärke von Apache Spark ist die hohe Verarbeitungsgeschwindigkeit, die erst durch eine Kombination aus In-Memory-Technologie und optimierten Rechenfunktionen möglich wird.
Damit werden ganz neue Echtzeitfunktionen im operativen Geschäft möglich, beispielsweise direktes, datengeschütztes Feedback an Kund:innen oder eine bessere Einsatzplanung für Mitarbeiter:innen und Ressourcen.
Voraussetzung für die Echtzeitverarbeitung ist allerdings eine entsprechende Cluster-Struktur mit ausreichend Arbeitsspeicher an den einzelnen Knotenpunkten.
Für weniger zeitkritische Anwendungen, etwa im Berichtswesen oder im Business-Development reichen hingegen auch kostengünstigere Cluster, die keine Echtzeitdaten liefern. Dort sind Sie mit einer vorhandenen Installation von Apache Hadoop gut bedient. Brauchen Sie hohes Verarbeitungstempo, sollten Sie auf Apache Spark umsteigen, beziehungsweise sich bei einer Neuinstallation direkt für diese Plattform entscheiden.

Apache Hadoop vs. Apache Spark: Was verbirgt sich dahinter?

Was ist ein Computer-Cluster?

Big Data Analytics mit Petabyte großen Datenbeständen benötigen sehr große Speichervolumen und viel Rechenleistung. Diese werden meist über Netzwerke aus vielen zusammengeschalteten Computern bereitgestellt. Solche Netzwerke werden als Cluster bezeichnet und die einzelnen Computer eines Clusters als Knoten.

Apache Hadoop und Apache Spark sind zwei sogenannte Frameworks, die speziell für die Verarbeitung sehr großer Datenmengen („Big Data“) entwickelt wurden. Ein Framework (Deutsch: Rahmenwerk) ist eine Sammlung von Definitionen, Mustervorlagen, Befehlsbibliotheken und Schnittstellen für die Entwicklung von Programmen. Auf einer solchen Grundlage können Programmier:innen sehr einfach eigene Anwendungen erstellen, die dann zu anderen Anwendungen aus demselben Framework kompatibel sind.
Bekannte Frameworks sind das Microsoft .NET-Framework für das Erstellen von Windows-Anwendungen oder TensorFlow von Google für das maschinelle Lernen.

Einsatzgebiete von Hadoop und Spark

Die Big-Data-Frameworks Apache Hadoop und Apache Spark verfolgen bei der Verarbeitung großer Datenmengen unterschiedliche Philosophien. Dementsprechend haben sie auch unterschiedliche Architekturen und Schwerpunkte. Beide haben im Bereich Big Data Analytics ihre Berechtigung und werden manchmal sogar zusammen verwendet.
Apache Hadoop ist ein Framework, um Daten auf Festplatten innerhalb sehr großer Computer-Cluster zu speichern und zu verarbeiten. Ein solches Cluster kann aus mehr als 1.000 einzelnen Geräten besteht. Die Software fasst die dort gespeicherten Daten in einer einzigen virtuellen Speicher- und Recheninstanz zusammen, wodurch es überhaupt erst praktisch möglich wird, sie zu verarbeiten.
Apache Spark ist ein Framework für das Cluster Computing, also das Rechnen auf sehr großen Computer-Clustern. Es wurde vor allem für zeitkritische Aufgaben aus der Big-Data-Analytik entwickelt. Auch Spark kann Cluster mit 1.000 und mehr Computern verwalten, führt die eigentlichen Berechnungen aber in den Arbeitsspeichern der Computer aus.
Apache Spark wird manchmal mit dem Grafikpaket Adobe Spark verwechselt, das seit 2023 unter dem neuen Namen Adobe Express vertrieben wird. Beide haben jedoch nichts miteinander zu tun. Es handelt sich hierbei um völlig unterschiedliche Produkte.
Apache Hadoop und Apache Spark sind sogenannte Open-Source-Frameworks. Ihre Quellcodes sind öffentlich: Entsprechend dürfen Dritte sie beliebig verändern und für eigene Projekte frei nutzen.
Hadoop basiert auf einem von Google entwickelten Verarbeitungsmodell für die fehlertolerante Verarbeitung großer Datenmengen namens MapReduce. Verschiedene Programmierer:innen entwickelten es außerhalb von weiter und bauten es schließlich zu einem komplexen Framework aus. Apache Spark entstand einige Jahre später an der Universität Berkeley in Kalifornien. Dabei flossen auch Erkenntnisse aus der Hadoop-Entwicklung in die Architektur von Apache Spark ein.
Heute vertreibt die Apache Software Foundation beide Frameworks. Dabei handelt es sich um eine ehrenamtlich tätige Organisation von Programmierer:innen, die Open-Source-Anwendungen weiterentwickelt und Dritten zur Verfügung stellt. Das bekannteste Projekt von Apache ist der Apache-Webserver, der millionenfach im Internet und in vielen Intranets genutzt wird.

Die beiden Architekturen im Vergleich

Beide Frameworks können große Mengen strukturierter und unstrukturierter Daten verarbeiten. Sie basieren jedoch auf unterschiedlichen Architekturen, die sich aus den jeweiligen Entwicklungszielen ergeben:

Die Architektur von Apache Hadoop

Hadoop besitzt zwei Kernkomponenten:
  • Hadoop Distributed File System (HDFS) ist einsogenanntes verteiltes Dateisystem. Es untergliedert eingehende Daten in zahlreiche Blöcke, die es jeweils mehrfach auf unterschiedlichen Knoten (Computern in einem Netzwerk) speichert. So bietet HDFS effiziente Mechanismen, um Störungen zu minimieren und selbst den Ausfall kompletter Knoten jederzeit zu kompensieren.
  • MapReduce ist dasProgrammiermodell von Hadoop. Google hat es ursprünglich für die schnelle Indexierung von Webseiten entworfen. Um große Datenmengen schnell zu verarbeiten, parallelisiert es viele Aufgaben und verteilt diese auf alle Computer im Cluster. Die Datenanalyse erfolgt dabei immer in zwei Stufen: In der Map-Phase verteilt das Programm eingehende Informationen und verarbeitet sie dann dezentralt. In der Reduce-Phase fügt es die Ergebnisse aus der vorherigen Map-Phase wieder zusammen.
Das möglichst gleichmäßige Verteilen von Speicherplatz und Rechenleistung geschieht mit dem Yet Another Resource Negotiator (kurz: YARN, auf Deutsch: Noch ein weiterer Ressourcenvermittler). Hadoop besitzt darüber hinaus ein eigenes System zum Data-Warehousing: Hive kann sehr große Datensätze abfragen.
Stärken des Hadoop Distributed File System sind Zuverlässigkeit und Resilienz. Sie ergeben sich aus der konsequenten Replikation (Vervielfältigung) der Inhalte jedes einzelnen Cluster-Knotens auf andere Cluster-Knoten. So schützt Hadoop mittels Redundanz vor Hardware- oder Softwareausfällen.
Dazu kommen die integrierte Speicherverschlüsselung und eine hierarchische Zugriffskontrolle auf Grundlage des POSIX-Berechtigungsmodells. So gewährleistet Hadoop den umfassenden Schutz der Daten vor Verlust und Diebstahl.

Die Architektur von Apache Spark

Apache Spark basiert auf ersten Erfahrungen mit Apache Hadoop und wurde speziell für die In-Memory-Verarbeitung entwickelt. Hierbei werden große Teile von Datenbanken oder sogar komplette Datenbanken in den Arbeitsspeicher von Computern geladen. Dort können Rechenoperationen wesentlich schneller ausgeführt werden, als dies auf Massenspeichern wie Festplatten möglich ist.
Die wichtigsten Komponenten von Spark sind:
  • Spark Core: Der Core (Deutsch: „Kern“) übernimmt die Verteilung der einzelnen Aufgaben im Cluster und ist für die Speicherverwaltung zuständig.
  • Resilient Distributed Datasets (RDDs): Spark verwendet eine abstrakte Datenstruktur, um seine Daten möglichst effizient zu speichern. Das Programm verarbeitet verteilte Daten und ermöglicht so eine effiziente Fehlerbehandlung.
Wichtige Module von Apache Spark sind:
  • Spark SQL verarbeitet strukturierte und halbstrukturierte Daten.
  • Spark Streaming verarbeitet Echtzeitdaten.
  • MLlib ist eine Bibliothek für maschinelles Lernen.
  • GraphX verarbeitet Graphen.
Apache Spark kann bei der Verwaltung von Speicherplatz und Rechenleistung auf den Ressourcenmanager YARN von Apache Hadoop zurückgreifen. Es kann hierfür aber auch andere Manager wie Kubernetes oder Apache Mesos verwenden.
Zur Sicherung seiner Daten arbeitet Spark mit sogenannten Resilient Distributed Datasets (RDD, auf Deutsch: resiliente, verteilte Datensets). Hierbei werden Informationen auf mehrere Knoten eines Clusters verteilt, wo sie parallel verarbeitet werden können.
Empfohlener externer Inhalt
Hier ist ein Video-Inhalt von YouTube. Er ergänzt die Informationen auf dieser Seite.
Sie können ihn mit einem Klick anzeigen und wieder ausblenden.
Ich bin einverstanden, dass externe Inhalte angezeigt werden. So können personenbezogene Daten an Drittplattformen übermittelt werden. Mehr in unserer  Datenschutzerklärung.
Datenschutzerklärung

Performance und Geschwindigkeit

Hadoop setzt auf Batchverarbeitung und sicheres, Festplatten-basiertes Speichern von Big Data. Demgegenüber ist Spark eher für die schnelle, speicherbasierte In-Memory-Verarbeitung großer Datenmengen optimiert.
Diese Unterschiede erklären sich aus der Historie beider Frameworks. Mit MapReduce schuf Google wichtige Grundlagen für die Verarbeitung großer Datenmengen. Hierbei stand zuerst einmal nur die grundsätzliche Verarbeitung von Big Data auf Computer-Clustern im Vordergrund. Diese Technologie wurde durch die Weiterentwicklung zu Hadoop als Open-Source-Software für eine große Community verfügbar.
Die für bestimmte Aufgaben unzureichende Performance von Hadoop war dann einige Jahre später Anstoß, um Apache Spark zu entwickeln. Vergleichstests zeigen, dass Apache Spark mit seiner Architektur bei bestimmten Aufgaben bis zu 100mal schneller ist als Apache Hadoop.
Eine Frau sitzt lächelnd vor einem Notebook

Vodafone Modbus Cloud Connect

Das All-in-One-Produkt für eine direkte Verbindung von Modbus-RTU-Geräten über LPWA (NB-IoT & LTE-M) in die Cloud.

  • Einfache Installation & Inbetriebnahme
  • Einfaches IoT-Upgrade von Bestandsgeräten (Retrofit)
  • Einfache, autarke Datenkommunikation über Narrowband-IoT & LTE-M
  • Einfacher und gesicherter Betrieb über den Lebenszeitraum

Datenverarbeitung und Echtzeitfähigkeit

Hadoop verarbeitet seine Befehle mithilfe sogenannter Batches (Kommandostapel). Bei einer solchen Stapelverarbeitung führt das Programm die einzelnen Befehlsschritte nicht in Echtzeit aus, sondern sammelt sie erst einmal in Stapeln. Zu einem geeigneten Zeitpunkt arbeitet es sie dann blockweise ab.
Dies bringt große Effizienzvorteile, speziell bei der Verarbeitung riesiger Daten- und Befehlsmengen. Ein Nachteil der Stapelverarbeitung ist allerdings, dass so keine Echtzeitausführung der Aufträge gewährleistet werden kann.
Indem es an weitere Big-Data-Frameworks angebunden wird, kann Hadoop indirekt echtzeitfähig gemacht werden. Ein Beispiel hierfür ist das ebenfalls als Open Source verfügbare Apache Storm. Der Preis dafür ist allerdings eine höhere Komplexität des Gesamtsystems.
Im Unterschied zu Apache Hadoop unterstützt Apache Spark neben der Stapelverarbeitung bereits von Haus auch die Echtzeit- und Streaming-Verarbeitung von Daten. Genau genommen arbeitet zwar auch Apache Spark mit vielen kleinen Batches, den sogenannten Micro-Batches. Diese granuliert es jedoch so fein granuliert und arbeitet sie so schnell ab, dass dies aus Sicht der Nutzer:innen einer Echtzeitverarbeitung gleichkommt.
Wer wissen möchte, was für die eigenen Kund:innen interessant sein könnte, findet in den eigenen Geschäftsdaten mit Apache Hadoop oder Apache Spark wertvolle Hinweise.

Programmierfreundlichkeit und APIs

Beide Frameworks sind in unterschiedlichen Programmiersprachen geschrieben: Während die Programmierer:innen den Code von Apache Hadoop fast vollständig in Java verfasst haben, kommt bei Apache Spark die Programmiersprache Scala zum Einsatz.
Scala ist eine funktionale und rein objektorientierte Sprache, die insbesondere im Data Engineering genutzt wird. Gegenüber Java bietet Scala unter idealen Rahmenbedingungen erkennbare Laufzeitvorteile, was gerade für Echtzeitanwendungen interessant ist.
Scala ist eine vergleichsweise junge Programmiersprache mit einem noch geringen Marktanteil, während Java im wichtigen Tiobe-Ranking bereits seit vielen Jahren auf einem der vorderen Plätze liegt. Für Unternehmen bedeutet dies, dass Programmier:innen für das Hadoop-Framework leichter zu finden sind als solche für das Spark-Framework.
Beide Sprachen sind deutlich anspruchsvoller und schwerer zu erlernen als etwa Python, das aktuell die weltweit meistgenutzte Programmiersprache ist und sich auch in der Datenanalytik wachsender Beliebtheit erfreut.

Application Programming Interfaces

Über ein Application Programming Interface (API, auf Deutsch: Programmierschnittstelle für Anwendungen), können Applikationen untereinander Informationen in vordefinierten Datenformaten austauschen.
Apache Hadoop bietet einige einfache und intuitive APIs. Dabei nutzt das integrierte Data-Warehousing-System Hive die eigens hierfür entwickelte Abfragesprache Hive Query Language (HQL). Diese hat Ähnlichkeiten zu SQL und sollte nicht mit der gleich abgekürzten Hibernate Query Language verwechselt werden.
Daneben unterstützt Hadoop die benutzerfreundliche Scriptsprache Pig Latin (auf Deutsch: „Schweine-Latein“) für vereinfachte Abfragen. In die Pig-Latin-Abfragen können wiederum auch Java- und Python-Skripte eingebunden werden.
Das Framework Apache Spark liefert dagegen eigene APIs für Scala, Java, Python und die Statistiksprache R. Daneben enthält es standardisierte APIs für seine Module SQL, Streaming, MLlib und GraphX.
Im Vergleich der beiden Frameworks sind die APIs von Apache Spark insgesamt vielfältiger, einfacher zu erlernen und leistungsfähiger als die von Hadoop. So stößt Apache Hadoop insbesondere bei komplexen Analyseaufgaben schneller an die Grenzen seines zugrundeliegenden Programmiermodells MapReduce.
Geschäftsmann arbeitet am Notebook

Mit Vodafone in der Multi-Cloud durchstarten

Kaum ein Cloud-Dienst deckt sämtliche unternehmerischen Anforderungen aus einer Hand ab. Mit Vodafone gelingt die Steuerung Ihres Multi-Cloud-Ansatzes optimal: Neben den Angeboten von Azure, Alibaba und AWS bieten wir professionellen Support und optimale Konnektivität aus einer Hand.

  • Umfassende Bedarfsanalyse im Vorfeld
  • Individueller Roll-out-Plan basierend auf Ihren Anforderungen
  • Gemeinsame Optimierung der Infrastruktur und Services

Wesentliche Unterschiede zwischen Apache Hadoop und Apache Spark

Wie der Vergleich der Architekturen zeigt, gibt es große Unterschiede zwischen den beiden Frameworks.
Unterschiede zwischen Apache Hadoop und Apache Spark:
Ort, an dem Berechnungen ausgeführt werden
Bevorzugt auf Festplatten im Cluster
Bevorzugt In-Memory im Arbeitsspeicher der Cluster-Computer
Eignung für Echtzeitaufgaben
Nicht möglich, nur Stapelverarbeitung
Quasi-Echtzeitberechnungen möglich
Ausfallsicherheit
Besonders hohe Ausfallsicherheit durch Prüfmechanismen und Redundanz
Hohe Ausfallsicherheit durch RDD
Programmiert in der Sprache
Java (mit etwas C)
Scala
Machine-Learning-Funktionalität
Kann nachgerüstet werden (beispielsweise mit Mahout)
Eigene Machine-Learning-Bibliothek MLlib
Einfachheit der Bedienung und Programmierung
Vergleichsweise einfach
Etwas schwieriger und umständlicher
Infrastruktur-Kosten
Niedriger durch bevorzugte Nutzung von günstigerem Festplatten-Speicher
Höher durch bevorzugte Nutzung von Arbeitsspeicher bei maximaler Rechenleistung
Apache Hadoop
Apache Spark

Anwendungsbereiche und Beispiele

Das Framework Hadoop eignet sich gut für die Datenaggregation, Protokollanalyse oder allgemein für die Verarbeitung von großen Mengen historischer Daten. So nutzen beispielsweise Technologiefirmen, die Finanzbranche, Forschungseinrichtungen und Behörden Hadoop für:
  • Langfristige Datenanalysen: Nicht zeit-kritische Berechnungen werden beispielsweise für das Berichtswesen oder das Business Development verwendet.
  • Kostensensitive Analysen: Sehr große Datenmengen können unter Hadoop nach einfachen Kriterien analysiert werden. Die hierfür genutzte Hardware ist durch die Verwendung von Festplattenspeicher günstiger als in einem vergleichbaren Spark-Cluster.
  • Log-Analyse: Große Bestände an Logdaten aus Webservern oder Applikationen werden mittels Hadoop nach Auffälligkeiten untersucht.
  • Archivierung: Geschäftsdaten, die aus steuerlichen, rechtlichen oder anderen Compliance-Gründen länger verwahrt werden sollen, können mittels Hadoop sicher, auffindbar und redundant gespeichert werden.
Social-Media-Netzwerke wie Facebook und LinkedIn sowie die Auktionsplattform eBay nutzen Hadoop für Datenanalyse und Suchmaschinenoptimierung.
Überall dort, wo Analyseergebnisse direkt in das operative Geschäft einfließen, kann Apache Spark seine Stärken ausspielen. Einige Beispiele hierfür sind:
  • Interaktive Echtzeitanalysen: Durch die simultane Auswertung von Webseitenbesuchen, Online-Einkäufen, Streaming-Abonnements und Social-Media-Beiträgen können in Echtzeit passende Angebote für Kund:innen ausgespielt werden.
  • KI-Training per Machine Learning: Die zu Apache Spark gehörende Bibliothek MLlib bietet spezielle Algorithmen für das Maschinelle Lernen. Damit können Unternehmen beispielsweise eine eigene künstliche Intelligenz (KI) trainieren.
  • Überprüfung von Finanztransaktionen: Zahlungsdienstleister können mit Apache Spark Bezahlvorgänge in Echtzeit analysieren, um diese vor Freigabe auf Plausibilität zu prüfen. Dazu gehören etwa die Art der gekauften Waren oder Dienstleistungen, der zeitliche und räumliche Zusammenhang zu anderen Bezahlvorgängen und die Kontodeckung.
Der Fahrservice Uber nutzt Apache Spark zur Echtzeitberechnung von Fahrpreisen oder zur Prognose bevorstehender Nachfragespitzen. Der Streaminganbieter Netflix verwendet Apache Spark für seine Filmempfehlungen.

Apache Hadoop vs. Apache Spark in Kürze

  • Die beiden Open-Source-Frameworks Apache Hadoop und Apache Spark schaffen die Grundlage, um eigene Computer-Cluster für Big Data Analytics aufzubauen.
  • Apache Hadoop ist älter als Spark und setzt stärker auf eine Festplatten-basierte Datenverarbeitung, was einen deutlichen Kostenvorteil bietet.
  • Apache Spark ist dank seiner In-Memory-Datenverarbeitung deutlich schneller als Apache Hadoop und kann Datenanalysen in Quasi-Echtzeit umsetzen.
  • Viele Unternehmen wie Facebook, LinkedIn, ebay, Uber und Netflix nutzen Apache Hadoop oder Apache Spark für Big Data Analytics, beispielsweise für Geschäftsprognosen oder Produktempfehlungen auf Basis vorheriger Käufe.
Das könnte Sie auch interessieren:
Cloud & Hosting
Jetzt anmelden: Souveräne Cloud in der Praxis

Jetzt anmelden: Souveräne Cloud in der Praxis

Digitale Souveränität wird für Unternehmen immer wichtiger – sei es aus regulatorischen Gründen, Sicherheitsanforderungen oder dem Wunsch nach größerer technologischer Unabhängigkeit. In dieser Online-Session zeigt Jan-Christoph Kneuper, Manager für souveräne Cloud-Lösungen bei Liquid Reply, welche Risiken bei globalen Cloud-Anbietern bestehen, wie Unternehmen regulatorische Vorgaben erfüllen und welche souveränen Cloud-Modelle heute einsatzbereit sind. Praxisbeispiele und eine kompakte Checkliste helfen Ihnen einzuschätzen, wo Ihr Unternehmen steht und welche nächsten Schritte sinnvoll sind.

Digitalisierungsberatung

Die Beraterinnen und Berater helfen Ihnen kostenlos und unabhängig bei praktischen Fragen und geben konkrete Tipps. Vereinbaren Sie einen unverbindlichen Termin um Ihr Anliegen zu besprechen.

Termin vereinbaren