In diesem Dokument werden die wichtigsten Konzepte, grundlegenden Bausteine, Kernfunktionen und Vorteile von Managed Service for Apache Spark erläutert. Wenn Sie diese Grundlagen kennen, können Sie Managed Service for Apache Spark effektiv für Ihre Datenverarbeitungsaufgaben nutzen.
Das serverlose Modell
Serverless for Apache Spark ist das moderne, automatisch ausgeführte Managed Service for Apache Spark-Modell. Damit können Sie Jobs ausführen, ohne die zugrunde liegende Infrastruktur bereitstellen, verwalten oder skalieren zu müssen. Managed Service for Apache Spark übernimmt die Details für Sie.
- Batches: Ein Batch (auch Batcharbeitslast genannt) ist das serverlose Äquivalent eines Managed Service for Apache Spark-Jobs. Sie senden Ihren Code, z. B. einen Spark-Job, an den Dienst. Managed Service for Apache Spark stellt die erforderlichen Ressourcen bei Bedarf bereit, führt den Job aus und gibt sie dann wieder frei. Sie müssen keine Cluster- oder Jobressourcen erstellen oder verwalten. Das übernimmt der Dienst für Sie.
- Interaktive Sitzungen: Interaktive Sitzungen bieten eine Live-Umgebung auf Abruf für die explorative Datenanalyse, in der Regel in einem Jupyter-Notebook. Interaktive Sitzungen bieten den Komfort eines temporären, serverlosen Arbeitsbereichs, in dem Sie Abfragen ausführen und Code entwickeln können, ohne Cluster- und Notebook-Ressourcen bereitstellen und verwalten zu müssen.
- Sitzungsvorlagen: Eine Sitzungsvorlage ist eine wiederverwendbare Konfiguration, mit der Sie interaktive Sitzungen definieren können. Die Vorlage enthält Sitzungseinstellungen wie Spark-Attribute und Bibliotheksabhängigkeiten. Sie verwenden die Vorlage, um interaktive Sitzungsumgebungen für die Entwicklung zu erstellen, in der Regel in einem Jupyter-Notebook.
Das clusterbasierte Modell
Managed Service for Apache Spark in Clustern ist die standardmäßige, infrastrukturorientierte Methode zur Verwendung von Managed Service for Apache Spark. Sie erhalten die vollständige Kontrolle über einen dedizierten Satz virtueller Maschinen für Ihre Datenverarbeitungsaufgaben.
- Cluster: Ein Cluster ist Ihre persönliche Datenverarbeitungs-Engine, die aus Google Cloud virtuellen Maschinen besteht. Sie erstellen einen Cluster, um Open-Source-Frameworks wie Apache Spark und Apache Hadoop auszuführen. Sie haben die volle Kontrolle über die Clustergröße, die Maschinentypen und die Konfiguration.
- Jobs: Ein Job ist eine bestimmte Aufgabe, z. B. ein PySpark-Script oder eine Hadoop-Abfrage. Anstatt einen Job direkt in einem Cluster auszuführen, senden Sie den Job an Managed Service for Apache Spark, der die Jobausführung für Sie verwaltet. Sie können mehrere Jobs an den Cluster senden.
- Workflowvorlagen: Eine Workflowvorlage ist eine wiederverwendbare Definition, mit der eine Reihe von Jobs (ein Workflow) orchestriert wird. Damit können Abhängigkeiten zwischen Jobs definiert werden, z. B. um einen Machine-Learning-Job erst auszuführen, nachdem ein Job zur Datenbereinigung erfolgreich abgeschlossen wurde. Der Workflow kann auf einem vorhandenen Cluster oder auf einem temporären (sitzungsspezifischen) Cluster ausgeführt werden, der zum Ausführen des Workflows erstellt und nach Abschluss des Workflows gelöscht wird. Sie können die Vorlage verwenden, um den definierten Workflow bei Bedarf auszuführen.
- Autoscaling-Richtlinien: Eine Autoscaling-Richtlinie enthält Regeln, die Sie definieren, um Worker-Maschinen basierend auf der Clusterarbeitslast zu einem Cluster hinzuzufügen oder daraus zu entfernen. So können Sie die Clusterkosten und -leistung dynamisch optimieren.
Anpassung der Umgebung
Managed Service for Apache Spark in Clustern bietet Clusterfunktionen und Komponenten, mit denen Sie Ihre Anwendungsumgebung anpassen können.
Notebook- und Entwicklungsumgebungen
Serverlose Notebooks und IDEs von Managed Service for Apache Spark sind mit integrierten Entwicklungsumgebungen verknüpft, in denen Sie Ihren Code schreiben und ausführen können.
- BigQuery Studio und Workbench: Dies sind einheitliche Analyse- und Notebook-Umgebungen. Damit können Sie Code (z. B. in einem Jupyter-Notebook) schreiben und einen Managed Service for Apache Spark-Cluster oder eine serverlose Sitzung als leistungsstarkes Backend verwenden, um Ihren Code für große Datasets auszuführen.
- Managed Service for Apache Spark JupyterLab-Plug-in: Dieses offizielle
JupyterLabextensiondient als Steuerfeld für Managed Service for Apache Spark Serverless in Ihrer Notebook-Umgebung. Sie können Cluster durchsuchen, erstellen und verwalten sowie Jobs senden, ohne die Jupyter-Oberfläche zu verlassen. - Managed Service for Apache Spark Connect Python Connector: Diese Python-Bibliothek vereinfacht die Verwendung von Spark Connect mit Managed Service for Apache Spark. Sie übernimmt die Authentifizierung und Endpunktkonfiguration und macht es so viel einfacher, Ihre lokale Python-Umgebung, z. B. ein Notebook oder eine IDE, für die interaktive Entwicklung mit einem Remote-Cluster von Managed Service for Apache Spark zu verbinden.
Das Containermodell
Bei Managed Service for Apache Spark in Google Kubernetes Engine werden virtuelle Managed Service for Apache Spark-Cluster in einem GKE-Cluster bereitgestellt. Im Gegensatz zu Managed Service for Apache Spark-Clustern werden für virtuelle Managed Service for Apache Spark-Cluster keine separaten Master- und Worker-VMs bereitgestellt. Stattdessen stellen sie Knotenpools in einem GKE-Cluster bereit. Managed Service for Apache Spark on GKE-Jobs werden als Pods in diesen Knotenpools ausgeführt. Die Knotenpools und die Planung von Pods in den Knotenpools werden von Managed Service for Apache Spark in GKE verwaltet.