In diesem Dokument wird beschrieben, wie Sie das Dataproc JupyterLab-Plug-in auf einem Computer oder einer VM installieren und verwenden, die Zugriff auf Google-Dienste hat, z. B. auf Ihrem lokalen Computer oder einer Compute Engine-VM-Instanz. Außerdem wird beschrieben, wie Sie Spark-Notebook-Code entwickeln und bereitstellen.
Nachdem Sie das Dataproc JupyterLab-Plug-in installiert haben, können Sie damit die folgenden Aufgaben ausführen:
- Interaktive Notebooksitzungen mit Dataproc Serverless for Spark starten
- Serverlose Dataproc-Batchjobs senden
Einschränkungen und Überlegungen bei Dataproc Serverless
- Spark-Jobs werden mit der Identität des Dienstkontos ausgeführt, nicht mit der Identität des einreichenden Nutzers.
Hinweise
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Dataproc API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Dataproc API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Achten Sie darauf, dass im regionalen VPC-Subnetz, in dem Sie Ihre interaktive Dataproc Serverless-Sitzung ausführen, der private Google-Zugriff aktiviert ist. Weitere Informationen finden Sie unter Dataproc Serverless-Laufzeitvorlage erstellen.
Dataproc JupyterLab-Plug-in installieren
Sie können das Dataproc JupyterLab-Plug-in auf einem Computer oder einer VM installieren und verwenden, die Zugriff auf Google-Dienste hat, z. B. auf Ihrem lokalen Computer oder einer Compute Engine-VM-Instanz.
So installieren Sie das Plug-in:
Laden Sie Python Version 3.8 oder höher von
python.org/downloads
herunter und installieren Sie sie.Prüfen Sie, ob Python 3.8 oder höher installiert ist.
python3 --version
Installieren Sie
JupyterLab 3.6.3+
auf Ihrem Computer.pip3 install --upgrade jupyterlab
Prüfen Sie, ob JupyterLab 3.6.3 oder höher installiert ist.
pip3 show jupyterlab ```
Installieren Sie das Dataproc JupyterLab-Plug-in.
pip3 install dataproc-jupyter-plugin
Wenn Ihre JupyterLab-Version älter als
4.0.0
ist, aktivieren Sie die Plug-in-Erweiterung.jupyter server extension enable dataproc_jupyter_plugin ```
-
jupyter lab
Die Seite Launcher von JupyterLab wird in Ihrem Browser geöffnet. Er enthält den Abschnitt Dataproc-Jobs und ‑Sitzungen. Er kann auch Abschnitte für Dataproc Serverless Notebooks und Dataproc Cluster Notebooks enthalten, wenn Sie Zugriff auf Dataproc Serverless Notebooks oder Dataproc-Cluster mit der optionalen Jupyter-Komponente in Ihrem Projekt haben.
Standardmäßig wird Ihre Dataproc Serverless for Spark-Interaktive Sitzung in dem Projekt und in der Region ausgeführt, die Sie festgelegt haben, als Sie
gcloud init
in Vorab ausgeführt haben. Sie können die Projekt- und Regionseinstellungen für Ihre Sitzungen auf der Seite Einstellungen > Dataproc-Einstellungen in JupyterLab ändern.
Dataproc Serverless-Laufzeitvorlage erstellen
Dataproc Serverless-Laufzeitvorlagen (auch session
-Vorlagen genannt) enthalten Konfigurationseinstellungen für die Ausführung von Spark-Code in einer Sitzung. Sie können Laufzeitvorlagen mit Jupyterlab oder der gcloud CLI erstellen und verwalten.
JupyterLab
Klicken Sie auf der Seite Launcher von JupyterLab im Abschnitt Dataproc Serverless Notebooks auf die Karte
New runtime template
.Füllen Sie das Formular Laufzeitvorlage aus.
Geben Sie einen Anzeigenamen und eine Beschreibung an und geben Sie dann die restlichen Einstellungen ein oder bestätigen Sie sie.
Hinweise:
Netzwerkkonfiguration: Für das Subnetz muss der private Google-Zugriff aktiviert sein und die Subnetzkommunikation muss auf allen Ports zulässig sein (siehe Netzwerkkonfiguration für Dataproc Serverless for Spark).
Wenn das Subnetz des
default
-Netzwerks für die Region, die Sie beim Ausführen vongcloud init
unter Vorbereitung konfiguriert haben, nicht für den privater Google-Zugriff aktiviert ist, gehen Sie so vor:- Aktivieren Sie sie für den privaten Google-Zugriff oder
- Wählen Sie ein anderes Netzwerk mit einem regionalen Subnetz aus, für das der privater Google-Zugriff aktiviert ist. Sie können die Region, die von Dataproc Serverless verwendet wird, auf der Seite Einstellungen > Dataproc-Einstellungen in JupyterLab ändern.
Metastore: Wenn Sie einen Dataproc Metastore-Dienst in Ihren Sitzungen verwenden möchten, wählen Sie die Metastore-Projekt-ID, die Region und den Dienst aus.
Maximale Inaktivitätszeit:Die maximale Inaktivitätszeit des Notebooks, bevor die Sitzung beendet wird. Zulässiger Bereich: 10 Minuten bis 336 Stunden (14 Tage).
Maximale Sitzungsdauer:Die maximale Lebensdauer einer Sitzung, bevor sie beendet wird. Zulässiger Bereich: 10 Minuten bis 336 Stunden (14 Tage).
PHS: Sie können einen verfügbaren Persistent Spark History Server auswählen, um während und nach Sitzungen auf Sitzungsprotokolle zuzugreifen.
Spark-Properties:Klicken Sie für jede Property, die Sie für Ihre serverlosen Spark-Sitzungen festlegen möchten, auf Property hinzufügen. Eine Liste der unterstützten und nicht unterstützten Spark-Properties, einschließlich Spark-Laufzeit-, Ressourcen- und Autoscaling-Properties, finden Sie unter Spark-Properties.
Labels:Klicken Sie für jedes Label, das Sie für Ihre serverlosen Spark-Sitzungen festlegen möchten, auf Label hinzufügen.
Sie finden Ihre Laufzeitvorlagen auf der Seite Einstellungen > Dataproc-Einstellungen.
- Sie können eine Vorlage über das Menü Aktion löschen.
Klicken Sie auf Speichern.
Öffnen und aktualisieren Sie die Seite Launcher von JupyterLab, um die Karte für die gespeicherte Notebookvorlage auf der Seite Launcher von JupyterLab aufzurufen.
gcloud
Erstellen Sie eine YAML-Datei mit der Konfiguration Ihrer Laufzeitvorlage.
Einfache YAML-Datei
environmentConfig: executionConfig: networkUri: default jupyterSession: kernel: PYTHON displayName: Team A labels: purpose: testing description: Team A Development Environment
Komplexe YAML-Datei
environmentConfig: executionConfig: serviceAccount: sa1 # Choose either networkUri or subnetworkUri networkUri: default subnetworkUri: subnet networkTags: - tag1 kmsKey: key1 idleTtl: 3600s ttl: 14400s stagingBucket: staging-bucket peripheralsConfig: metastoreService: projects/my-project-id/locations/us-central1/services/my-metastore-id sparkHistoryServerConfig: dataprocCluster: projects/my-project-id/regions/us-central1/clusters/my-cluster-id jupyterSession: kernel: PYTHON displayName: Team A labels: purpose: testing runtimeConfig: version: "1.1" containerImage: gcr.io/my-project-id/my-image:1.0.1 properties: "p1": "v1" description: Team A Development Environment
Wenn das Subnetz des
default
-Netzwerks für die Region, die Sie beim Ausführen vongcloud init
unter Vorbereitung konfiguriert haben, nicht für den privaten Google-Zugriff aktiviert ist, gehen Sie so vor:- Aktivieren Sie sie für den privaten Google-Zugriff oder
- Wählen Sie ein anderes Netzwerk mit einem regionalen Subnetz aus, für das der privater Google-Zugriff aktiviert ist. Sie können die Region, die von Dataproc Serverless verwendet wird, auf der Seite Einstellungen > Dataproc-Einstellungen in JupyterLab ändern.
Erstellen Sie eine Sitzungsvorlage (Laufzeit) aus Ihrer YAML-Datei. Führen Sie dazu den folgenden Befehl gcloud beta dataproc session-templates import lokal oder in Cloud Shell aus:
gcloud beta dataproc session-templates import TEMPLATE_ID \ --source=YAML_FILE \ --project=PROJECT_ID \ --location=REGION
- Unter gcloud beta dataproc session-templates finden Sie Befehle zum Beschreiben, Auflisten, Exportieren und Löschen von Sitzungsvorlagen.
Notebooks starten und verwalten
Nachdem Sie das Dataproc JupyterLab-Plug-in installiert haben, können Sie auf der Seite Launcher von JupyterLab auf Vorlagenkarten klicken, um:
Jupyter-Notebook in Dataproc Serverless starten
Auf der Seite „JupyterLab Launcher“ im Abschnitt Dataproc Serverless Notebooks werden Karten mit Notebookvorlagen angezeigt, die den Dataproc Serverless-Laufzeitvorlagen zugeordnet sind (siehe Dataproc Serverless-Laufzeitvorlage erstellen).
Klicken Sie auf eine Karte, um eine Dataproc Serverless-Sitzung zu erstellen und ein Notebook zu starten. Wenn die Sitzung erstellt wurde und der Notebook-Kernel einsatzbereit ist, ändert sich der Kernelstatus von
Unknown
inIdle
.Notebook-Code schreiben und testen
Kopieren Sie den folgenden PySpark-
Pi estimation
-Code und fügen Sie ihn in die PySpark-Notebookzelle ein. Drücken Sie dann Umschalt + Eingabe, um den Code auszuführen.import random def inside(p): x, y = random.random(), random.random() return x*x + y*y < 1 count = sc.parallelize(range(0, 10000)) .filter(inside).count() print("Pi is roughly %f" % (4.0 * count / 10000))
Notebook-Ergebnis:
Nachdem Sie ein Notebook erstellt und verwendet haben, können Sie die Notebooksitzung beenden, indem Sie auf dem Tab Kernel auf Kernel herunterfahren klicken.
- Wenn Sie die Sitzung nicht beenden, wird sie von Dataproc beendet, wenn der Inaktivitätstimer der Sitzung abläuft. Sie können die Inaktivitätsdauer der Sitzung in der Konfiguration der Laufzeitvorlage konfigurieren. Die Standardzeit für die Inaktivität einer Sitzung beträgt eine Stunde.
Notebook in einem Dataproc in Compute Engine-Cluster starten
Wenn Sie einen Dataproc in Compute Engine-Jupyter-Cluster erstellt haben, enthält die Seite Launcher von JupyterLab den Abschnitt Dataproc Cluster Notebook mit vorinstallierten Kernelkarten.
So starten Sie ein Jupyter-Notebook in Ihrem Dataproc in Compute Engine-Cluster:
Klicken Sie im Bereich Dataproc-Cluster-Notebook auf eine Karte.
Wenn sich der Kernelstatus von
Unknown
inIdle
ändert, können Sie mit dem Schreiben und Ausführen von Notebook-Code beginnen.Nachdem Sie ein Notebook erstellt und verwendet haben, können Sie die Notebooksitzung beenden, indem Sie auf dem Tab Kernel auf Kernel herunterfahren klicken.
Eingabe- und Ausgabedateien in Cloud Storage verwalten
Die explorative Datenanalyse und die Erstellung von ML-Modellen umfassen häufig dateibasierte Eingaben und Ausgaben. Dataproc Serverless greift auf diese Dateien in Cloud Storage zu.
Klicken Sie zum Aufrufen des Cloud Storage-Browsers in der Seitenleiste der Launcher-Seite von JupyterLab auf das Symbol für den Cloud Storage-Browser und doppelklicken Sie dann auf einen Ordner, um den Inhalt aufzurufen.
Sie können auf von Jupyter unterstützte Dateitypen klicken, um sie zu öffnen und zu bearbeiten. Wenn Sie Änderungen an den Dateien speichern, werden sie in Cloud Storage geschrieben.
Wenn Sie einen neuen Cloud Storage-Ordner erstellen möchten, klicken Sie auf das Symbol für einen neuen Ordner und geben Sie dann den Namen des Ordners ein.
Wenn Sie Dateien in einen Cloud Storage-Bucket oder einen Ordner hochladen möchten, klicken Sie auf das Symbol „Hochladen“ und wählen Sie die entsprechenden Dateien aus.
Spark-Notebook-Code entwickeln
Nachdem Sie das Dataproc JupyterLab-Plug-in installiert haben, können Sie Jupyter-Notebooks über die Seite Launcher von JupyterLab starten, um Anwendungscode zu entwickeln.
PySpark- und Python-Codeentwicklung
Dataproc Serverless und Dataproc in Compute Engine-Clustern unterstützen PySpark-Kernel. Dataproc in der Compute Engine unterstützt auch Python-Kernel.
Klicken Sie auf der Seite Launcher von JupyterLab auf eine PySpark-Karte im Bereich Dataproc Serverless Notebooks oder Dataproc Cluster Notebook, um ein PySpark-Notebook zu öffnen.
Klicken Sie auf der Seite Launcher von JupyterLab im Bereich Dataproc Cluster Notebook auf eine Python-Kernelkarte, um ein Python-Notebook zu öffnen.
SQL-Codeentwicklung
Wenn Sie ein PySpark-Notebook zum Schreiben und Ausführen von SQL-Code öffnen möchten, klicken Sie auf der JupyterLab-Seite Launcher im Bereich Dataproc Serverless Notebooks oder Dataproc Cluster Notebook auf die Karte „PySpark-Kernel“.
Spark SQL Magic:Da der PySpark-Kernel, der Dataproc-Serverless Notebooks startet, bereits mit Spark SQL Magic geladen ist, können Sie anstelle von spark.sql('SQL STATEMENT').show()
zum Umschließen Ihrer SQL-Anweisung oben in eine Zelle %%sparksql magic
eingeben und dann die SQL-Anweisung in die Zelle eingeben.
BigQuery SQL:Mit dem BigQuery Spark-Connector können Sie mit Ihrem Notebook-Code Daten aus BigQuery-Tabellen laden, Analysen in Spark ausführen und die Ergebnisse dann in eine BigQuery-Tabelle schreiben.
Die Dataproc Serverless 2.1-Laufzeit enthält den BigQuery Spark-Connector. Wenn Sie die Dataproc Serverless 2.0-Laufzeit oder eine ältere Laufzeit verwenden, um Dataproc Serverless-Notebooks zu starten, können Sie den Spark BigQuery Connector installieren, indem Sie Ihrer Dataproc Serverless-Laufzeitvorlage die folgende Spark-Eigenschaft hinzufügen:
spark.jars: gs://spark-lib/bigquery/spark-bigquery-with-dependencies_2.12-0.25.2.jar
Scala-Codeentwicklung
Dataproc-Cluster in der Compute Engine, die mit der Imageversion 2.0 oder höher bzw. 2.1 oder höher erstellt wurden, enthalten Apache Toree, einen Scala-Kernel für die Jupyter-Notebook-Plattform, der interaktiven Zugriff auf Spark bietet.
Klicken Sie auf der Seite Launcher von JupyterLab im Bereich Dataproc-Cluster-Notebook auf die Karte „Apache Toree“, um ein Notebook für die Scala-Codeentwicklung zu öffnen.
Abbildung 1. Apache Toree-Kernelkarte auf der JupyterLab-Launcher-Seite
Metadaten-Explorer
Wenn eine Dataproc Metastore-Instanz (DPMS) mit einer Dataproc Serverless-Laufzeitvorlage oder einem Dataproc-Cluster in der Compute Engine verknüpft ist, wird das DPMS-Instanzschema im JupyterLab Metadata Explorer angezeigt, wenn ein Notebook geöffnet wird. DPMS ist ein vollständig verwalteter und horizontal skalierbarer Hive Metastore-Dienst (HMS) in Google Cloud.
So rufen Sie HMS-Metadaten im Metadata Explorer auf:
Aktivieren Sie die Data Catalog API in Ihrem Projekt.
Aktivieren Sie die Data Catalog-Synchronisierung in Ihrem DPMS-Dienst.
Geben Sie eine DPMS-Instanz an, wenn Sie die Dataproc Serverless-Laufzeitvorlage erstellen oder den Dataproc in Compute Engine-Cluster erstellen.
Klicken Sie in der Seitenleiste auf das Symbol für den JupyterLab Metadata Explorer, um ihn zu öffnen.
Im Metadaten-Explorer können Sie nach einer Datenbank, Tabelle oder Spalte suchen. Klicken Sie auf den Namen einer Datenbank, Tabelle oder Spalte, um die zugehörigen Metadaten aufzurufen.
Code bereitstellen
Nachdem Sie das Dataproc JupyterLab-Plug-in installiert haben, können Sie JupyterLab für Folgendes verwenden:
Notebookcode auf der Dataproc Serverless-Infrastruktur ausführen
Sie können Batchjobs an die Dataproc Serverless-Infrastruktur oder an Ihren Dataproc on Compute Engine-Cluster senden.
Notebookcode in Dataproc Serverless ausführen
Wenn Sie Code in einer Notebook-Zelle ausführen möchten, klicken Sie auf Ausführen oder drücken Sie die Umschalttaste + Eingabetaste.
Wenn Sie Code in einer oder mehreren Notebookzellen ausführen möchten, verwenden Sie das Menü Ausführen.
Batchjob an Dataproc Serverless senden
Klicken Sie auf der JupyterLab-Seite Launcher im Bereich Dataproc-Jobs und ‑Sitzungen auf die Karte Serverless.
Klicken Sie auf den Tab Batch, dann auf Batch erstellen und füllen Sie die Felder Batch-Informationen aus.
Klicken Sie auf Senden, um den Job zu senden.
Batchjob an einen Dataproc in Compute Engine-Cluster senden
Klicken Sie auf der Seite Launcher von JupyterLab im Bereich Dataproc-Jobs und ‑Sitzungen auf die Karte Cluster.
Klicken Sie auf den Tab Jobs und dann auf Job senden.
Wählen Sie einen Cluster aus und füllen Sie die Felder für den Job aus.
Klicken Sie auf Senden, um den Job zu senden.
Ressourcen ansehen und verwalten
Nachdem Sie das Dataproc JupyterLab-Plug-in installiert haben, können Sie Dataproc Serverless und Dataproc in der Compute Engine auf der Seite Launcher von JupyterLab im Abschnitt Dataproc Jobs and Sessions aufrufen und verwalten.
Klicken Sie auf den Bereich Dataproc-Jobs und ‑Sitzungen, um die Karten Cluster und Serverless aufzurufen.
So rufen Sie Dataproc Serverless-Sitzungen auf und verwalten sie:
- Klicken Sie auf die Karte Serverlos.
- Klicken Sie auf den Tab Sitzungen und dann auf eine Sitzungs-ID, um die Seite Sitzungsdetails zu öffnen. Dort können Sie Sitzungseigenschaften aufrufen, Google Cloud-Protokolle im Log-Explorer ansehen und eine Sitzung beenden. Hinweis: Für jedes Dataproc Serverless-Notebook wird eine eindeutige Dataproc Serverless-Sitzung erstellt.
So rufen Sie Dataproc Serverless-Batches auf und verwalten sie:
- Klicken Sie auf den Tab Batches, um eine Liste der serverlosen Dataproc-Batches im aktuellen Projekt und in der aktuellen Region aufzurufen. Klicken Sie auf eine Batch-ID, um die Batch-Details aufzurufen.
So rufen Sie Dataproc in Compute Engine-Clustern auf und verwalten sie:
- Klicken Sie auf die Karte Cluster. Der Tab Cluster ist ausgewählt, um aktive Dataproc-Cluster in Compute Engine-Clustern im aktuellen Projekt und in der aktuellen Region aufzulisten. Sie können in der Spalte Aktionen auf die Symbole klicken, um einen Cluster zu starten, zu beenden oder neu zu starten. Klicken Sie auf einen Clusternamen, um die Clusterdetails aufzurufen. Sie können auf die Symbole in der Spalte Aktionen klicken, um einen Job zu klonen, anzuhalten oder zu löschen.
So rufen Sie Dataproc on Compute Engine-Jobs auf und verwalten sie:
- Klicken Sie auf die Karte Jobs, um die Liste der Jobs im aktuellen Projekt aufzurufen. Klicken Sie auf eine Job-ID, um die Jobdetails aufzurufen.