Dataproc JupyterLab-Plug-in für serverlose Batch- und interaktive Notebook-Sitzungen verwenden

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

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Enable the Dataproc API.

    Enable the API

  4. Install the Google Cloud CLI.
  5. To initialize the gcloud CLI, run the following command:

    gcloud init
  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  7. Enable the Dataproc API.

    Enable the API

  8. Install the Google Cloud CLI.
  9. To initialize the gcloud CLI, run the following command:

    gcloud init

Dataproc JupyterLab-Plug-in installieren

Sie können das Dataproc JupyterLab-Plug-in auf einer Maschine oder VM installieren und verwenden, die Zugriff auf Google-Dienste wie Ihrem lokalen Computer oder einem Compute Engine-VM-Instanz

So installieren Sie das Plug-in:

  1. Python 3.8+ muss auf Ihrem Computer installiert sein. Sie können Python unter python.org/downloads herunterladen und installieren.

    1. Überprüfen Sie die Installation von Python 3.8+.

      python3 --version
  2. Installieren Sie JupyterLab 3.6.3+ auf Ihrem Computer.

    pip3 install --upgrade jupyterlab
    1. Prüfen Sie, ob JupyterLab 3.6.3 oder höher installiert ist.

      pip3 show jupyterlab
  3. Installieren Sie das Dataproc JupyterLab-Plug-in.

    pip3 install dataproc-jupyter-plugin
    1. Wenn Ihre JupyterLab-Version älter als 4.0.0 ist, aktivieren Sie die Plug-in-Erweiterung.

      jupyter server extension enable dataproc_jupyter_plugin
  4. JupyterLab starten

    jupyter lab
    1. Die Seite Launcher von JupyterLab wird in Ihrem Browser geöffnet. Enthält einen Abschnitt Dataproc-Jobs und -Sitzungen Er kann auch Folgendes enthalten: Abschnitte Dataproc Serverless Notebooks und Dataproc Cluster Notebooks wenn Sie Zugriff auf serverlose Dataproc-Notebooks oder Dataproc-Cluster haben mit der optionalen Jupyter-Komponente die in Ihrem Projekt ausgeführt werden.

    2. Standardmäßig wird die Dataproc Serverless for Spark Interactive-Sitzung ausgeführt in dem Projekt und der Region, die Sie bei der Ausführung von gcloud init in Hinweis: Sie können das Projekt und Regionseinstellungen für Ihre Sitzungen aus dem JupyterLab-Einstellungen > Seite mit Dataproc-Einstellungen

Serverlose Dataproc-Laufzeitvorlage erstellen

Serverlose Dataproc-Laufzeitvorlagen (auch session-Vorlagen genannt) Konfigurationseinstellungen zum Ausführen von Spark-Code in einer Sitzung enthalten. Sie können Laufzeitvorlagen mit Jupyterlab oder der gcloud CLI erstellen und verwalten können.

JupyterLab

  1. Klicken Sie auf der Seite Launcher von JupyterLab im Abschnitt Dataproc Serverless Notebooks auf die Karte New runtime template.

  2. Füllen Sie das Formular Laufzeitvorlage aus.

  3. 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 Netzwerks default für die Region, die Sie beim Du hast unter Vorbereitung gcloud init gelaufen ist nicht für den privater Google-Zugriff aktiviert:

      • Aktivieren Sie sie für den privaten Google-Zugriff oder
      • Wählen Sie ein anderes Netzwerk mit einem regionalen Subnetzwerk 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: Für die Verwendung eines Dataproc Metastore-Dienst in Ihren Sitzungen die Metastore-Projekt-ID, die Region und den Dienst aus.

    • Max. Inaktivitätszeit: Die maximale Inaktivitätszeit des Notebooks vor der Sitzung gekündigt. 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 festlegen möchten, auf Property hinzufügen. für Ihre serverlosen Spark-Sitzungen. 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.

  4. Rufen Sie Ihre Laufzeitvorlagen über Einstellungen > Dataproc-Einstellungen Seite.

    • Sie können eine Vorlage über das Menü Aktion löschen.
  5. Klicken Sie auf Speichern.

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

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

    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 von gcloud 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 Subnetzwerk aus, für das der privater Google-Zugriff aktiviert ist. Sie können die Region ändern, die von Dataproc Serverless verwendet wird in JupyterLab unter Einstellungen > Seite mit Dataproc-Einstellungen
  2. Erstellen Sie eine Sitzungsvorlage (Laufzeit) aus Ihrer YAML-Datei. Führen Sie dazu lokal oder in Cloud Shell den folgenden Befehl aus: gcloud beta dataproc session-templates import:

    gcloud beta dataproc session-templates import TEMPLATE_ID \
        --source=YAML_FILE \
        --project=PROJECT_ID \
        --location=REGION
    

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

  1. Klicken Sie auf eine Karte, um eine serverlose Dataproc-Sitzung zu erstellen, und ein Notebook zu starten. Wenn die Sitzungserstellung abgeschlossen ist und das Notebook der Kernel einsatzbereit ist, ändert sich der Kernel-Status von Unknown bis Idle.

  2. Notebook-Code schreiben und testen

    1. Kopieren Sie den folgenden PySpark-Pi estimation-Code und fügen Sie ihn ein in der PySpark-Notebook-Zelle ein und drücken Sie Umschalttaste + Eingabetaste, um führen Sie den Code aus.

      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:

  3. 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. Der Timer für die Inaktivitätszeit der Sitzung läuft ab. Sie können die Inaktivitätsdauer der Sitzung in der Konfiguration der Laufzeitvorlage konfigurieren. Die standardmäßige Inaktivitätszeit für Sitzungen 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 Dataproc auf Compute Engine-Cluster:

  1. Klicken Sie im Bereich Dataproc-Cluster-Notebook auf eine Karte.

  2. Wenn sich der Kernel-Status von Unknown zu Idle ändert, haben Sie folgende Möglichkeiten: Notebook-Code schreiben und ausführen.

  3. 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 Analyse explorativer Daten und das Erstellen von ML-Modellen umfassen oft dateibasierten Ein- und Ausgaben. Dataproc Serverless greift auf diese Dateien zu in Cloud Storage.

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

Führen Sie nach der Installation des Dataproc JupyterLab-Plug-ins folgende Schritte aus: Sie können Jupyter Notebooks über die Launcher-Seite von JupyterLab starten, um Anwendungscode.

PySpark- und Python-Codeentwicklung

Dataproc Serverless und Dataproc in Compute Engine Cluster unterstützen PySpark-Kernel. Dataproc in der Compute Engine unterstützt auch Python-Kernel.

SQL-Codeentwicklung

Klicken Sie auf die PySpark-Kernelkarte in der Dataproc Serverless Notebooks oder Dataproc-Cluster-Notebook Bereich der JupyterLab-Seite Launcher um ein PySpark-Notebook zu öffnen und SQL-Code zu schreiben und auszuführen.

Spark SQL-Magie:Da der PySpark-Kernel, der Dataproc Serverless Notebooks ist mit Spark SQL-Magie vorinstalliert, anstatt spark.sql('SQL STATEMENT').show() zu verwenden um Ihre SQL-Anweisung zu verpacken, %%sparksql magic oben in eine Zelle ein und geben Sie dann die SQL-Anweisung in die Zelle ein.

BigQuery-SQL:Mit dem BigQuery Spark-Connector können Daten in Ihrem Notebook-Code geladen werden. aus BigQuery-Tabellen, führen Sie Analysen in Spark durch und schreiben Sie dann die Ergebnisse. an eine BigQuery-Tabelle an.

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 im Menü Dataproc-Cluster-Notebook Abschnitt auf der Seite Launcher von JupyterLab, um ein Notebook für Scala zu öffnen Codeentwicklung.

Metadaten-Explorer

Wenn eine Dataproc Metastore (DPMS)-Instanz ist an eine Dataproc Serverless-Laufzeitvorlage angehängt oder einem Dataproc in Compute Engine-Cluster, wird im JupyterLab Metadata Explorer angezeigt, wenn ein Notebook geöffnet wird. DPMS ist ein und horizontal skalierbaren Hive Metastore-Dienst (HMS) auf Google Cloud

So rufen Sie HMS-Metadaten im Metadaten-Explorer auf:

Klicken Sie in der Seitenleiste auf das Symbol für den JupyterLab Metadata Explorer, um ihn zu öffnen.

Sie können im Metadaten-Explorer 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.

Notebook-Code in Dataproc Serverless ausführen

  • Klicken Sie auf das Symbol Ausführen oder drücken Sie die Umschalttaste + Eingabetaste, um Code in einer Notebook-Zelle auszuführen.

  • Verwenden Sie das Menü Ausführen, um Code in einer oder mehreren Notebook-Zellen auszufü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 Create Batch (Batch erstellen) und füllen Sie das Feld Batch Info-Felder.

  • Klicken Sie auf Senden, um den Job zu senden.

Batchjob an einen Dataproc in Compute Engine-Cluster senden

  • Klicken Sie im Abschnitt Dataproc-Jobs und -Sitzungen auf die Karte Cluster. auf der JupyterLab-Launcher-Seite.

  • 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

Führen Sie nach der Installation des Dataproc JupyterLab-Plug-ins folgende Schritte aus: können Sie Dataproc Serverless und Dataproc in Compute Engine im Abschnitt Dataproc-Jobs und -Sitzungen auf der JupyterLab-Seite Launcher.

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:

  1. Klicken Sie auf die Karte Serverlos.
  2. Klicken Sie auf den Tab Sitzungen und dann auf eine Sitzungs-ID, um die Seite Sitzungsdetails zu öffnen. Dort können Sie sich Sitzungseigenschaften ansehen, das Google Cloud-Protokoll im Log-Explorer aufrufen und eine Sitzung beenden. Hinweis: Für jedes Dataproc Serverless-Notebook wird eine eindeutige Dataproc Serverless-Sitzung erstellt.

So rufen Sie serverlose Dataproc-Batches auf und verwalten sie:

  1. Klicken Sie auf den Tab Batches (Batches), um die Liste der serverlosen Batches von Dataproc Serverless in der des aktuellen Projekts und der aktuellen Region. Klicken Sie auf eine Batch-ID, um die Batch-Details aufzurufen.

So zeigen Sie Dataproc in Compute Engine-Clustern an und verwalten sie:

  1. 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 Symbole klicken, um einen Cluster zu starten, zu beenden oder neu zu starten. Klicken Sie auf einen Clusternamen. um 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 in Compute Engine-Jobs auf und verwalten sie:

  1. Klicken Sie auf die Karte Jobs, um die Liste der Jobs im des aktuellen Projekts. Auf eine Job-ID klicken um die Jobdetails aufzurufen.