Weiter zu

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, Apache Mesos, Kubernetes, eigenständig, in der Cloud und für unterschiedliche Datenquellen ausgeführt werden.

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. 

Erfahren Sie, wie Sie mit Dataproc Apache Spark-Cluster in Google Cloud einfach, integriert und kostengünstig ausführen können. 

Übersicht

Das Spark-System besteht aus fünf Hauptkomponenten:

1. Spark Core ist eine Engine zur verteilten Datenverarbeitung für allgemeine Zwecke. Bibliotheken für SQL, Streamverarbeitung, maschinelles Lernen und Graphberechnung basieren auf Spark Core und können zusammen in einer Anwendung verwendet werden. Spark Core bildet die Basis ganzer Projekte. Sie sorgt für die Aufgabenverteilung, Planung und grundlegende E/A-Funktionen.

2. Spark SQL ist das Spark-Modul für die Arbeit mit strukturierten Daten und unterstützt eine gemeinsame Methode für den Zugriff auf verschiedene Datenquellen. 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. Ein Servermodus bietet Standardkonnektivität über Java-Datenbankkonnektivität oder offene Datenbankkonnektivität.

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. 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. 

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. Neben einer höchst flexiblen API umfasst GraphX auch verschiedene Algorithmen für Graphen. GraphX ist in puncto Leistung mit den schnellsten Graphsystemen vergleichbar und bietet dabei die Flexibilität, Fehlertoleranz und Nutzerfreundlichkeit von Spark.

Welche Vorteile bietet Apache Spark?

Geschwindigkeit

Sie können Workloads 100-mal schneller als mit Hadoop MapReduce ausführen. Spark erzielt sowohl mit Batch- als auch Streamingdaten eine hohe Leistung. Dafür nutzt das System einen modernen Planer für gerichtete azyklische Graphen, eine Abfrageoptimierung und eine physische Ausführungs-Engine.

Nutzerfreundlichkeit

Spark bietet über 80 allgemeine Operatoren, die die Entwicklung paralleler Anwendungen vereinfachen. Das System kann interaktiv über Scala-, Python-, R- und SQL-Shells verwendet werden, um das Schreiben von Anwendungen zu beschleunigen.

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 wird durch Communities weltweit unterstützt. Sie führen neue Konzepte und Funktionen schneller und effektiver ein als interne Teams, die an unternehmenseigenen Lösungen arbeiten. Durch ihre kollektive Leistungsfähigkeit kann eine Open-Source-Community Innovationen vorantreiben, die Entwicklung beschleunigen und Fehler schneller beheben, sodass sich die Markteinführung von Produkten verkürzen lässt.

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.

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.

Data Engineers

Data Engineers verwenden Spark zum Programmieren und Erstellen von Datenverarbeitungsjobs mit der Option, in einem erweiterten Sprachsatz zu programmieren.

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.

Dataproc ist ein schneller, nutzerfreundlicher, vollständig verwalteter Cloud-Dienst, über den Sie Cluster mit Apache Spark und Apache Hadoop einfach, integriert und kostengünstig ausführen können. Der Dienst lässt sich vollständig mit anderen Google Cloud-Diensten integrieren, die hohe Anforderungen an Sicherheit, Governance und Support erfüllen. Dadurch erhalten Sie eine umfassende, leistungsfähige Plattform für Datenverarbeitung, Analysen und maschinelles Lernen.

Tools von Google Cloud zur Big-Data-Analyse, wie BigQuery, Notebooks und Dataflow, ermöglichen Ihnen, kontextreiche Anwendungen und neue Analyselösungen zu entwickeln sowie Daten in verwertbare Informationen zu verwandeln.