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 damit für eine Vielzahl von Entwicklern und Data Scientists zugänglich. Die Python-API PySpark lässt sich auch gut mit beliebten Bibliotheken wie Pandas zur Datenmanipulation verwenden. In Google Cloud wird Apache Spark mit serverlosen Optionen, bahnbrechenden Leistungsverbesserungen wie der Lightning Engine (in der Vorschau) 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 für Apache Spark für eine Zero-Ops-Entwicklung oder Dataproc für verwaltete Spark-Cluster nutzen.

Übersicht

Das Spark-System besteht aus fünf Hauptkomponenten:

  1. Spark Core ist eine Engine zur verteilten Datenverarbeitung für allgemeine Zwecke. Es ist die grundlegende Ausführungs-Engine, die die Aufgabenverteilung, Planung und grundlegende E/A verwaltet. Spark Core führte das Konzept von Resilient Distributed Datasets (RDDs) ein, unveränderliche verteilte Sammlungen von Objekten, die parallel und 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.
  2. Spark SQL ist das Spark-Modul für die Arbeit mit strukturierten Daten und führte DataFrames ein, die eine optimiertere und entwicklerfreundlichere API als RDDs für die 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 Spark-Jobleistung weiter, insbesondere für SQL- und DataFrame-Vorgänge, mit Innovationen wie der Lightning Engine, die bei der Ausführung von Spark in Google Cloud erhebliche Beschleunigungen Ihrer Abfragen und Datenverarbeitungsaufgaben bietet.
  3. 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.
  4. 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 Codieren und die Fehlerbehebung optimiert werden.
  5. 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.

Google Cloud bietet eine optimierte Umgebung für all diese Komponenten. Die Lightning Engine steigert beispielsweise die Leistung von Spark und DataFrame, während Google Cloud Serverless for Apache Spark die Bereitstellung und Verwaltung vereinfacht und Gemini die Produktivität von Entwicklern in Notebookumgebungen wie BigQuery Studio und Vertex AI Workbench erhöht.

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 Arbeitslasten als Hadoop MapReduce, insbesondere bei iterativen Aufgaben. Google Cloud steigert diese Geschwindigkeit mit einer optimierten Infrastruktur und der Lightning Engine.

Nutzerfreundlichkeit

Die allgemeinen Operatoren von Spark vereinfachen die parallele App-Entwicklung. Die interaktive Verwendung mit Scala, Python, R und SQL ermöglicht eine schnelle Entwicklung. Google Cloud bietet serverlose Optionen und integrierte Notebooks mit Gemini für eine verbesserte Benutzerfreundlichkeit.



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 Stärke von Open-Source-Communities für schnelle Innovationen und Problemlösungen, was zu einer schnelleren Entwicklung und Markteinführung führt. Google Cloud fördert diesen offenen Ansatz und bietet Apache Spark als Standardprodukt an, dessen Funktionen jedoch ständig erweitert werden.

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.

Apache Spark in Google Cloud ausführen

Spark-Erfahrung mit Google Cloud optimieren

  • Google Cloud Serverless für Apache Spark: Für eine wirkliche Zero-Ops-Umgebung können Sie Ihre Spark-Jobs ausführen, ohne Cluster verwalten zu müssen. Profitieren Sie von einem nahezu sofortigen Start, automatischem Skalieren und dem Leistungsschub der Lightning Engine und von Gemini. Ideal für ETL, Data Science und interaktive Analysen, insbesondere in Kombination mit BigQuery
  • Dataproc: Wenn Sie mehr Kontrolle über Ihre Clusterumgebung benötigen oder bestimmte Hadoop-Umgebungskomponenten zusätzlich zu Spark benötigen, bietet Dataproc einen vollständig verwalteten Dienst. Dataproc vereinfacht die Clustererstellung und ‑verwaltung und profitiert von Lightning Engine-Optimierungen für die Spark-Leistung. 
  • Eine einheitliche und offene Umgebung: Wenn Sie Spark in Google Cloud ausführen, können Sie es nahtlos in Dienste wie BigQuery für einheitliche Analysen, Vertex AI für MLOps, BigLake Metastore für das offene Teilen von Metadaten und Dataplex Universal Catalog für umfassende Datenverwaltung einbinden. Alle diese Dienste unterstützen eine offene Lakehouse-Architektur.

Gleich loslegen

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

Google Cloud