Was ist Apache Spark?

Apache Spark ist eine einheitliche Analyse-Engine für die Verarbeitung großer Datenmengen. Sie nutzt integrierte Module für SQL, Streaming, maschinelles Lernen und Graphverarbeitung. Spark kann auf Apache Hadoop, Kubernetes, eigenständig, in der Cloud und für unterschiedliche Datenquellen ausgeführt werden. Es bietet umfangreiche APIs in Java, Scala, Python und R und ist daher für eine Vielzahl von Entwicklern und Data Scientists zugänglich. Die Python-API PySpark lässt sich außerdem gut in beliebte Bibliotheken wie Pandas zur Datenbearbeitung einbinden. Auf Google Cloud wird Apache Spark mit serverlosen Optionen, bahnbrechenden Leistungsverbesserungen wie der Lightning Engine und tiefgreifenden Integrationen in eine einheitliche Daten- und KI-Plattform auf die nächste Stufe gehoben.

Doch wofür wird Apache Spark und wofür wird Apache Hadoop verwendet? Beide gehören heute zu den beliebtesten verteilten Systemen auf dem Markt. Beide werden außerdem von Apache als „Top-Level Projects“ geführt und oft zusammen eingesetzt. Hadoop wird primär für festplattenlastige Rechenvorgänge mit dem MapReduce-Modell eingesetzt. Spark besitzt eine flexiblere und oft teurere Architektur zur In-Memory-Verarbeitung. Anhand der einzelnen Features der beiden Systeme können Sie entscheiden, wofür Sie welche Lösung implementieren.

Hier erfahren Sie, wie Sie mit Google Cloud Apache Spark-Arbeitslasten einfacher, integrierter und kostengünstiger ausführen können. Sie können Google Cloud Serverless for Apache Spark für die Entwicklung ohne Betriebsaufwand nutzen oder Dataproc für verwaltete Spark-Cluster verwenden.

Übersicht

Das Spark-System besteht aus fünf Hauptkomponenten:

  • Spark Core ist eine Engine zur verteilten Datenverarbeitung für allgemeine Zwecke. Sie ist die grundlegende Ausführungs-Engine, die die verteilte Aufgabenverteilung, Planung und grundlegende E/A-Funktionen verwaltet. Spark Core führte das Konzept der Resilient Distributed Datasets (RDDs) ein, unveränderbare verteilte Sammlungen von Objekten, die parallel mit Fehlertoleranz verarbeitet werden können. Bibliotheken für SQL, Streamverarbeitung, maschinelles Lernen und Graphberechnung basieren auf Spark Core und können zusammen in einer Anwendung verwendet werden.


  • Spark SQL ist das Spark-Modul für die Arbeit mit strukturierten Daten. Es führt DataFrames ein, die eine optimiertere und entwicklerfreundlichere API für RDDs zur Bearbeitung strukturierter Daten bieten. Sie können damit strukturierte Daten in Spark-Programmen entweder über SQL oder eine vertraute DataFrame API abfragen. Spark SQL unterstützt die HiveQL-Syntax und ermöglicht Zugriff auf vorhandene Apache Hive-Warehouses. Google Cloud beschleunigt die Leistung von Spark-Jobs weiter, insbesondere bei SQL- und DataFrame-Operationen, mit Innovationen wie der Lightning Engine, die Ihre Abfragen und Datenverarbeitungsaufgaben bei der Ausführung von Spark in Google Cloud deutlich beschleunigt.


  • Spark Streaming ermöglicht die einfache Erstellung skalierbarer, fehlertoleranter Streaminglösungen. Es macht die sprachintegrierte Spark-API für die Streamverarbeitung nutzbar, sodass Sie Streamingjobs auf die gleiche Weise wie Batchjobs schreiben können – mit DStreams oder mit der neueren Structured Streaming API auf Basis von DataFrames. Spark Streaming unterstützt Java, Scala und Python und bietet eine sofort einsatzfähige zustandsorientierte „Exactly-Once“-Semantik.


  • MLlib ist die skalierbare Machine-Learning-Bibliothek von Spark. Sie bietet Tools, die maschinelles Lernen in der Praxis skalierbar machen und vereinfachen. MLlib enthält viele gängige Lernalgorithmen wie Klassifizierung, Regression, Empfehlung und Clustering. Sie enthält auch Dienstprogramme für Workflows und andere Anwendungen wie Feature-Transformationen, die Erstellung von ML-Pipelines, Modellbewertung, verteilte lineare Algebra und Statistiken. In Kombination mit Vertex AI von Google Cloud lassen sich Spark MLlib-Workflows nahtlos in MLOps-Pipelines einbinden. Die Entwicklung kann mit Gemini für das Programmieren und die Fehlerbehebung optimiert werden.


  • GraphX ist die Spark API für Graphen und parallele Graphberechnung. Die flexible API funktioniert nahtlos sowohl mit Graphen als auch Sammlungen und vereint die ETL-Methode (Extract, Transform, Load), explorative Analysen und iterative Graphberechnung.

Für diese Komponenten bietet Google Cloud eine optimierte Umgebung. So steigert die Lightning Engine die Leistung von Spark und DataFrames, während Google Cloud Serverless for Apache Spark die Bereitstellung und Verwaltung vereinfacht. Gemini erhöht die Produktivität von Entwicklern in Notebook-Umgebungen wie BigQuery Studio und Vertex AI Workbench.

Funktionsweise von Apache Spark

Die Leistungsfähigkeit von Apache Spark beruht auf einigen grundlegenden Architekturprinzipien:

  • In-Memory-Verarbeitung: Spark lädt Daten in den Arbeitsspeicher, wodurch iterative Algorithmen und interaktive Abfragen im Vergleich zu speicherbasierten Systemen deutlich beschleunigt werden.
  • Verteilte Ausführung: Ausführung erfolgt auf einem Cluster von Maschinen. Ein Treiberprogramm koordiniert Executors (Worker-Prozesse), die Aufgaben parallel auf verschiedenen Datenpartitionen ausführen.
  • RDDs und DataFrames: Resilient Distributed Datasets (RDDs) sind die grundlegende fehlertolerante Datenabstraktion. DataFrames, die auf RDDs basieren, bieten eine umfangreichere, schemabewusste API für strukturierte Daten, die Optimierungen über den Catalyst-Optimierer ermöglicht.
  • Lazy-Evaluation und DAGs: Spark erstellt einen gerichteten azyklischen Graphen (Directed Acyclic Graph, DAG) von Operationen. Transformationen sind „träge“ (nicht sofort berechnet), sodass Spark den gesamten Workflow optimieren kann, bevor eine Aktion die Ausführung auslöst.

Welche Vorteile bietet Apache Spark?

Geschwindigkeit

Die In-Memory-Verarbeitung und der DAG-Scheduler von Spark ermöglichen schnellere Workloads als Hadoop MapReduce, insbesondere bei iterativen Aufgaben. Google Cloud steigert die Geschwindigkeit mit einer optimierten Infrastruktur und der Lightning Engine.

Nutzerfreundlichkeit

Die allgemeinen Operatoren von Spark vereinfachen die Entwicklung paralleler Anwendungen. Die interaktive Nutzung mit Scala, Python, R und SQL ermöglicht eine schnelle Entwicklung. Google Cloud bietet serverlose Optionen und integrierte Notebooks mit Gemini.



Skalierbarkeit

Spark bietet horizontale Skalierbarkeit und verarbeitet große Datenmengen, indem die Arbeit auf Clusterknoten verteilt wird. Google Cloud vereinfacht das Skalieren mit serverlosem Autoscaling und flexiblen Dataproc-Clustern.

Universalität

Spark bietet eine ganze Reihe von Bibliotheken, u. a. für SQL und DataFrames, MLlib für maschinelles Lernen, GraphX und Spark Streaming. Sie können diese Bibliotheken nahtlos in einer Anwendung kombinieren.

Innovatives Open-Source-Framework

Spark nutzt die Leistungsfähigkeit von Open-Source-Communities für schnelle Innovationen und Problemlösungen. Google Cloud unterstützt diesen offenen Ansatz und bietet Standard-Apache Spark mit erweiterten Funktionen.

Vorteile von Spark gegenüber einer reinen SQL-Engine

Apache Spark ist eine schnelle Computercluster-Engine für allgemeine Zwecke, die in einem Hadoop-Cluster oder eigenständig bereitgestellt werden kann. Mithilfe von Spark können Programmierer schnell Anwendungen in Java, Scala, Python, R oder SQL schreiben. Das macht die Lösung für Entwickler, Data Scientists sowie für Geschäftsanwender mit Statistikkenntnissen zugänglich. Nutzer können sich über Spark SQL mit jeder Datenquelle verbinden und diese als Tabelle darstellen, die dann von SQL-Clients genutzt werden kann. Auch interaktive Machine-Learning-Algorithmen lassen sich einfach in Spark implementieren.

Bei einer reinen SQL-Engine wie Apache Impala, Apache Hive oder Apache Drill können Nutzer zum Abfragen von Daten, die in mehreren Datenbanken gespeichert sind, nur SQL oder SQL-ähnliche Sprachen verwenden. Im Vergleich zu Spark sind diese Frameworks also kleiner. Bei Google Cloud müssen Sie sich jedoch nicht für eine der beiden Optionen entscheiden. BigQuery bietet leistungsstarke SQL-Funktionen. Google Cloud Serverless für Apache Spark und Dataproc für einen verwalteten Spark- und Hadoop-Dienst ermöglichen die Nutzung der Vielseitigkeit von Spark, oft für dieselben Daten über BigLake Metastore und in offenen Formaten.

Wie setzen Unternehmen Spark ein?

Viele Unternehmen nutzen Spark, um den komplexen und rechenintensiven Vorgang der Verarbeitung und Analyse großer Datenmengen zu vereinfachen. Dabei kann es sich um strukturierte oder unstrukturierte, Echtzeit- oder archivierte Daten handeln. Mit Spark können Nutzer außerdem komplexe Funktionen wie Machine-Learning- und Graph-Algorithmen nahtlos integrieren. Zu den häufigsten Anwendungsfällen gehören:

  • ETL/ELT im großen Maßstab
  • Datenverarbeitung in Echtzeit
  • Maschinelles Lernen
  • Interaktive Datenexploration
  • Graphenanalyse

Data Engineers

Data Engineers verwenden Spark zum Programmieren und Erstellen von Datenverarbeitungsjobs mit der Option, in einem erweiterten Sprachsatz zu programmieren. In Google Cloud können Data Engineers Google Cloud Serverless for Apache Spark für ETL/ELT-Pipelines ohne Betriebsaufwand oder Dataproc für die verwaltete Clustersteuerung nutzen. Alle Dienste sind für die Governance in BigQuery und den Dataplex Universal Catalog eingebunden.

Data Scientists

Data Scientists können Analysen und maschinelles Lernen mithilfe von Spark und GPUs erweitern. Die Möglichkeit, mit einer vertrauten Programmiersprache größere Datenmengen schneller zu verarbeiten, steigert das Innovationspotenzial. Google Cloud bietet eine zuverlässige GPU-Unterstützung für Spark und eine nahtlose Integration mit Vertex AI, sodass Data Scientists Modelle schneller erstellen und bereitstellen können. Sie können verschiedene Notebook-Umgebungen wie BigQuery Studio oder Vertex AI Workbench nutzen oder ihre bevorzugten IDEs wie Jupyter und VS Code verbinden. Diese flexible Entwicklungsumgebung in Kombination mit Gemini beschleunigt den Workflow von der ersten Erkundung bis zur Bereitstellung in der Produktion.

Spark in Google Cloud – jetzt noch besser

Google Cloud löst die üblichen Herausforderungen beim Ausführen von Spark im großen Maßstab, sodass Sie sich auf die Gewinnung von Informationen konzentrieren können, ohne sich Gedanken über die Infrastruktur zu machen.

Einfacher

Mit den vollständig verwalteten Optionen Dataproc und Serverless for Apache Spark, die die Bereitstellung und Skalierung automatisieren, können Sie den Betriebsaufwand und die „Tuning-Steuer“ eliminieren.

 Intelligenter

Nutzen Sie die Leistungsfähigkeit von Gemini, um den gesamten Lebenszyklus für Spark-Entwickler zu unterstützen – von der Entwicklung über die Bereitstellung bis hin zum Monitoring und zur Fehlerbehebung – und das alles auf einer einheitlichen Datenplattform, die für Lakehouse bereit ist.

Schneller

Mit der Lightning Engine, unserer Engine der nächsten Generation, die Spark-Jobs ohne manuelle Abstimmung beschleunigt, profitieren Sie von branchenführender Spark-Leistung und Kosteneinsparungen.

Gleich loslegen

Profitieren Sie von einem Guthaben über 300 $, um Google Cloud und mehr als 20 „Immer kostenlos“ Produkte kennenzulernen.

Google Cloud