Startseite topics Apache Spark Was ist Apache Spark?
Entdecken Sie die Apache Spark-Lösung von IBM Abonnieren Sie KI-Updates
Illustration mit Collage aus Piktogrammen von Wolken, Kreisdiagramm, Diagrammpiktogrammen
Was ist Apache Spark?

Apache Spark ist eine blitzschnelle Open-Source-Engine zur Datenverarbeitung für maschinelles Lernen und KI-Anwendungen, unterstützt von der größten Open-Source-Community im Bereich Big Data.

Apache Spark (Spark) verarbeitet problemlos große Datensätze und ist ein schnelles, universelles Cluster-System, das sich gut für PySpark eignet. Es ist darauf ausgelegt, das Maß an Rechengeschwindigkeit, Skalierbarkeit und Programmierbarkeit zu bieten, das für Big Data erforderlich ist – insbesondere für Streaming-Daten, Diagrammdaten, Analysen, maschinelles Lernen, die Verarbeitung großer Datenmengen und Anwendungen der künstlichen Intelligenz (KI).

Die Analytics Engine von Spark verarbeitet Daten 10 bis 100 Mal schneller als einige Alternativen für kleinere Workloads, wie z. B. Hadoop (Link befindet sich außerhalb von ibm.com). Die Skalierung erfolgt durch die Verteilung von Verarbeitungsworkflows auf große Computer-Cluster mit integrierter Parallelität und Fehlertoleranz. Es umfasst sogar APIs für Programmiersprachen, die bei Datenanalysten und Data Scientists beliebt sind, darunter Scala, Java, Python und R.

Spark wird oft mit Apache Hadoop verglichen, und insbesondere mit Hadoop MapReduce, der nativen Datenverarbeitungskomponente von Hadoop. Der Hauptunterschied zwischen Spark und MapReduce besteht darin, dass Spark die Daten verarbeitet und für nachfolgende Schritte im Arbeitsspeicher aufbewahrt – ohne sie auf die Festplatte zu schreiben oder von ihr abzulesen –, was zu deutlich schnelleren Verarbeitungsgeschwindigkeiten führt. (Mehr Informationen darüber, wie Spark im Vergleich zu Hadoop abschneidet und es ergänzt, finden Sie weiter unten in diesem Artikel).

Spark wurde 2009 im AMPLab der UC Berkeley entwickelt. Heute wird es von der Apache Software Foundation verwaltet und verfügt mit über 1.000 Mitwirkenden über die größte Open-Source-Community im Bereich Big Data. Es ist auch eine Kernkomponente mehrerer kommerzieller Big-Data-Angebote.

Generative KI und ML für Unternehmen

Erfahren Sie mehr über die wichtigsten Vorteile der generativen KI und wie Unternehmen generative KI und maschinelles Lernen in ihr Unternehmen integrieren können.

E-Book

Registrieren Sie sich für das E-Book zu KI-Datenspeichern

So funktioniert Apache Spark

Apache Spark hat eine hierarchische primäre/sekundäre Architektur. Der Spark Driver ist der primäre Knoten. Dieser steuert den Cluster-Manager, der die sekundären Knoten verwaltet und Datenergebnisse an den Anwendungs-Client schickt.

Basierend auf dem Anwendungscode generiert Spark Driver den SparkContext, der mit dem Cluster-Manager – dem Standalone Cluster Manager von Spark oder anderen Cluster-Managern wie Hadoop YARN, Kubernetes oder Mesos – zusammenarbeitet, um die Ausführung auf die Knoten zu verteilen und zu überwachen. Außerdem werden Resilient Distributed Datasets (RDDs) erstellt, die entscheidend für die bemerkenswerte Verarbeitungsgeschwindigkeit von Spark sind.

Resilient Distributed Dataset (RDD)


Resilient Distributed Datasets (RDDs) sind fehlertolerante Sammlungen von Elementen, die auf mehrere Knoten eines Clusters verteilt und parallel bearbeitet werden können. RDDs sind eine grundlegende Struktur in Apache Spark.

Spark lädt Daten, indem es auf eine Datenquelle verweist oder eine vorhandene Sammlung mit der SparkContext-Parallelisierungsmethode zum Zwischenspeichern von Daten in einem RDD zur Verarbeitung parallelisiert. Sobald die Daten in ein RDD geladen sind, führt Spark Transformationen und Aktionen auf RDDs im Speicher durch – der Schlüssel zur Geschwindigkeit von Spark. Spark hinterlegt die Daten auch im Speicher, es sei denn, das System hat nicht mehr genügend Speicher oder der Benutzer beschließt, die Daten zur dauerhaften Speicherung auf die Festplatte zu schreiben.

Jeder Datensatz in einem RDD wird in logische Partitionen unterteilt, die auf verschiedenen Knoten des Clusters berechnet werden können. Benutzer können zwei Arten von RDD-Vorgängen ausführenTransformationen und AktionenTransformationen sind Vorgänge, die auf die Erstellung eines neuen RDD angewendet werdenMithilfe von Aktionen wird Apache Spark angewiesen, Berechnungen durchzuführen und die Ergebnisse an den Treiber zurückzugeben.

Spark unterstützt eine Vielzahl von Aktionen und Transformationen auf RDDs. Diese Verteilung wird von Spark durchgeführt, sodass sich die Benutzer keine Gedanken über die Berechnung der richtigen Verteilung machen müssen.

Directed Acyclic Graph (DAG)


Im Gegensatz zum zweistufigen Ausführungsprozess in MapReduce erstellt Spark einen Directed Acyclic Graph (DAG), um Aufgaben und die Orchestrierung von Worker-Knoten im gesamten Cluster zu planen. Da Spark bei der Ausführung von Aufgaben Daten verarbeitet und umwandelt, sorgt der DAG-Scheduler für mehr Effizienz, indem er die Worker-Knoten im gesamten Cluster orchestriert. Diese Aufgabenverfolgung gewährleistet eine Fehlertoleranz, da sie die aufgezeichneten Vorgänge erneut auf die Daten eines früheren Zustands anwendet.

DataFrames und Datensätze


Zusätzlich zu RDDs verarbeitet Spark zwei weitere Datentypen: DataFrames und Datensätze.

DataFrames sind die am häufigsten verwendeten strukturierten Anwendungsprogrammierschnittstellen (APIs) und stellen eine Datentabelle mit Zeilen und Spalten dar. Obwohl RDD eine kritische Funktion für Spark war, befindet es sich derzeit im Wartungsmodus. Aufgrund der Beliebtheit der Machine Learning Library (MLlib) von Spark haben DataFrames die Hauptrolle als primäre API für MLlib übernommen (eine Reihe von Algorithmen für maschinelles Lernen zur Verbesserung der Skalierbarkeit sowie Tools für die Auswahl von Merkmalen und den Aufbau von ML-Pipelines). Dies ist wichtig zu beachten, wenn Sie die MLlib-API verwenden, da DataFrames für Einheitlichkeit in den verschiedenen Sprachen wie Scala, Java, Python und R sorgen.

Datensätze sind eine Erweiterung von DataFrames, die eine typensichere, objektorientierte Programmierschnittstelle bieten. Im Gegensatz zu DataFrames sind Datensätze standardmäßig eine Sammlung von stark typisierten JVM-Objekten.

Spark SQL ermöglicht die Abfrage von Daten aus DataFrames und SQL-Datenspeichern wie Apache Hive. Spark SQL-Abfragen geben einen DataFrame oder Datensatz zurück, wenn sie in einer anderen Sprache ausgeführt werden.

Spark Core


Spark Core ist die Grundlage für die parallele Datenverarbeitung und kümmert sich um Planung, Optimierung, RDD und Datenabstraktion. Spark Core bietet die funktionale Grundlage für die Spark-Bibliotheken, Spark SQL, Spark Streaming, die MLlib-Bibliothek für maschinelles Lernen und GraphX für die Diagrammdatenverarbeitung. Der Spark Core und der Cluster-Manager verteilen Daten über den Spark-Cluster und abstrahieren sie. Durch diese Verteilung und Abstraktion wird der Umgang mit Big Data sehr schnell und benutzerfreundlich.

Spark-APIs


Spark umfasst eine Vielzahl von Anwendungsprogrammierschnittstellen (APIs), um die Leistungsfähigkeit von Spark einem möglichst breiten Publikum zugänglich zu machen. Spark SQL ermöglicht die relationale Interaktion mit RDD-Daten. Spark hat auch eine gut dokumentierte API für Scala, Java, Python und R. Jede Sprach-API in Spark hat ihre spezifischen Nuancen im Umgang mit Daten. RDDs, DataFrames und Datensätze sind in jeder Sprach-API verfügbar. Mit APIs für eine Vielzahl von Sprachen macht Spark die Verarbeitung von Big Data für unterschiedlichste Personengruppen mit Hintergrund in den Bereichen Entwicklung, Data Science, Datentechnik und Statistik zugänglich.

Vorteile von Apache Spark 

Spark beschleunigt die Entwicklung und den Betrieb auf verschiedene Weise. Spark hilft Teams bei den folgenden Aufgaben:  

  • Beschleunigung der App-Entwicklung: Die Streaming- und SQL-Programmierungsmodelle von Apache Spark, unterstützt von MLlib und GraphX, erleichtern die Entwicklung von Apps, die maschinelles Lernen und Diagrammanalysen nutzen.

  • Schnellere InnovationAPIs bieten Benutzerfreundlichkeit bei der Bearbeitung von halbstrukturierten Daten und der Transformation von Daten.  

  • Optimierung mit offenen Technologien: Die OpenPower Foundation ermöglicht GPU-, CAPI Flash-, RDMA- und FPGA-Beschleunigung sowie Innovationen im Bereich des maschinellen Lernens, um die Leistung von Apache-Spark-Workloads zu optimieren.

  • Schnellerer Prozess: Spark kann bei kleineren Workloads 100-mal schneller sein als Hadoop (Link befindet sich außerhalb von ibm.com), da es über eine fortschrittliche In-Memory-Computing-Engine und einen Festplattenspeicher verfügt.

Apache Spark und maschinelles Lernen

Spark verfügt über verschiedene Bibliotheken, die die Funktionen auf maschinelles Lernen, künstliche Intelligenz (KI) und Stream-Verarbeitung erweitern.

Apache Spark MLlib


Eine der wichtigsten Funktionen von Apache Spark sind die in der Spark MLlib verfügbaren maschinellen Lernfunktionen, die eine sofort einsatzbereite Lösung für Klassifizierung und Regression, kollaboratives Filtern, Clustering, verteilte lineare Algebra, Decision Trees, Random Forests, Gradient-Boosted Trees, Mining häufiger Muster, Auswertungsmetriken und Statistiken bieten. Die Funktionen von MLlib in Kombination mit den verschiedenen Datentypen machen Apache Spark zu einem unverzichtbaren Big-Data-Tool.

Spark GraphX


Spark GraphX verfügt nicht nur über API-Funktionen, sondern wurde auch für die Lösung von Diagrammproblemen entwickelt. GraphX ist eine Diagrammabstraktion, die RDDs für Diagramme und die graphenparallele Berechnung erweitert. Spark GraphX lässt sich in Diagrammdatenbanken integrieren, die Informationen über Verbindungen oder Verbindungsnetze speichern, wie z. B. in einem sozialen Netzwerk.

Spark Streaming


Spark Streaming ist eine Erweiterung der Spark-Kern-API, die eine skalierbare, fehlertolerante Verarbeitung von Live-Datenströmen ermöglicht. Während Spark Streaming Daten verarbeitet, kann es Daten an Dateisysteme, Datenbanken und Live-Dashboards für Echtzeit-Streaming-Analysen mit den Algorithmen für maschinelles Lernen und Diagrammverarbeitung von Spark schicken. Spark Streaming basiert auf der Spark SQL-Engine und ermöglicht auch eine inkrementelle Batch-Verarbeitung, die zu einer schnelleren Verarbeitung von gestreamten Daten führt.

Zugehörige Links

Hadoop

Big-Data-Analyse

Spark im Vergleich zu Apache Hadoop und MapReduce

„Spark im Vergleich zu Hadoop“ oder „Spark vs. Hadoop“ wird im Internet häufig gesucht, aber wie oben erwähnt, ist Spark eher eine Erweiterung für Hadoop – und genauer gesagt für die native Datenverarbeitungskomponente von Hadoop: MapReduce. Tatsächlich baut Spark auf dem MapReduce-Framework auf und heute enthalten die meisten Hadoop-Distributionen Spark.

Wie Spark ermöglicht MapReduce es Programmierern, Anwendungen zu schreiben, die riesige Datensätze schneller verarbeiten, indem Teile des Datensatzes parallel auf großen Computer-Clustern verarbeitet werden. Aber wo MapReduce Daten auf der Festplatte verarbeitet und Lese- und Schreibzeiten hinzukommen, die die Verarbeitung verlangsamen, führt Spark Berechnungen im Speicher durch, was viel schneller ist. Dadurch kann Spark Daten bis zu 100 Mal schneller verarbeiten als MapReduce. 

Die in Spark integrierten APIs für mehrere Sprachen machen es für Entwickler praktischer und zugänglicher als MapReduce, das in dem Ruf steht, schwierig zu programmieren zu sein. Im Gegensatz zu MapReduce kann Spark Anwendungen für die Stream-Verarbeitung auf Hadoop-Clustern mit YARN ausführen, dem Framework für Ressourcenverwaltung und Jobplanung von Hadoop. Wie oben erwähnt, fügt Spark die Funktionen von MLlib, GraphX und SparkSQL hinzu. Außerdem kann Spark Daten aus anderen Datenquellen außerhalb der Hadoop-Anwendung verarbeiten, einschließlich Apache Kafka.

Ansonsten ist Spark mit Hadoop kompatibel und ergänzt es. Es kann Hadoop-Daten verarbeiten, einschließlich Daten aus HDFS (dem Hadoop Distributed File System), HBase (einer nicht relationalen Datenbank, die auf HDFS ausgeführt wird), Apache Cassandra (eine NoSQL-Alternative zu HDFS) und Hive (einem Hadoop-basierten Data Warehouse).

Weiterführende Lösungen
IBM Analytics Engine

Analytics Engine ist ein kombinierter Apache Spark- und Apache Hadoop-Service zur Erstellung von Analyseanwendungen.

IBM Analytics Engine entdecken
IBM Watson Studio

Schaffen Sie Vertrauen und skalieren Sie KI über Cloud-Umgebungen hinweg. Geben Sie Data Scientists, Entwicklern und Analysten die Möglichkeit, KI-Modelle zu erstellen, auszuführen und zu verwalten, und optimieren Sie Ihre Entscheidungsfindung.

Informationen über IBM Watson Studio
Apache Spark auf IBM Power

Verlassen Sie sich auf ein Open-Source-Framework für Cluster Computing, das Daten enorm schnell und in großen Mengen verarbeitet.

Mehr Informationen über Apache Spark auf IBM Power
IBM Spectrum Conductor

Sicherer Einsatz von IBM Spectrum Conductor und anderen Services für eine mandantenfähige Unternehmensumgebung, sowohl vor Ort als auch in der Cloud.

Mehr Informationen über IBM Spectrum Conductor
Ressourcen Big-Data-Analysen mit Apache Spark kennenlernen

Erfahren Sie, wie Spark die anspruchsvolle und rechenintensive Aufgabe der Verarbeitung großer Mengen von Echtzeitdaten vereinfacht.

Hadoop vs. Spark: Was ist der Unterschied?

Lernen Sie die jeweiligen Architekturen von Hadoop und Spark kennen und erfahren Sie, wie diese Big-Data-Frameworks in verschiedenen Szenarien im Vergleich abschneiden.

Generative KI und ML für Unternehmen

Erfahren Sie mehr über die wichtigsten Vorteile der generativen KI und wie Unternehmen generative KI und maschinelles Lernen in ihr Unternehmen integrieren können.

Hier sehen Sie detaillierte Schritte, denen ein Entwickler folgen kann, um eine oder mehrere Aufgaben zu erledigen

Jedes Tutorial bietet praktische Anleitungen, mit denen Entwickler den Einsatz der Technologien in ihren Projekten erlernen können.

Migration älterer Anwendungen zu Apache Spark

Erfahren Sie, wie Sie Kernsysteme mit Apache Spark transformieren können. Profitieren Sie von Agilität, Leistung und Zugang zu einem breiteren Ökosystem.

Machen Sie den nächsten Schritt

Skalieren Sie KI-Workloads für alle Ihre Daten, überall, mit IBM watsonx.data, einem zweckmäßigen Datenspeicher, der auf einer offenen Lakehouse-Architektur basiert.

watsonx.data erkunden Buchen Sie eine Live-Demo