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

Dataproc Serverless – Einschränkungen und Überlegungen

  • Spark-Jobs werden mit der Dienstkontoidentität ausgeführt, nicht mit der Identität des sendenden Nutzers.

Hinweise

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Dataproc API aktivieren.

    Aktivieren Sie die API

  4. Installieren Sie die Google Cloud CLI.
  5. Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    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. Dataproc API aktivieren.

    Aktivieren Sie die API

  8. Installieren Sie die Google Cloud CLI.
  9. Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init

Dataproc JupyterLab-Plug-in installieren

Sie können das Dataproc JupyterLab-Plug-in auf einer Maschine oder einer VM installieren und verwenden, die Zugriff auf Google-Dienste hat, z. B. auf Ihren lokalen Computer oder eine Compute Engine-VM-Instanz.

So installieren Sie das Plug-in:

  1. Prüfen Sie, ob Python 3.8+ auf Ihrem Computer installiert ist. Sie können Python von python.org/downloads herunterladen und installieren.

    1. Überprüfen Sie die Installation von Python 3.8 oder höher.

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

    pip3 install --upgrade jupyterlab
    
    1. Prüfen Sie die Installation von JupyterLab 3.6.3 oder höher.

      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 JupyterLab-Seite Launcher wird in Ihrem Browser geöffnet. Sie enthält den Abschnitt Dataproc-Jobs und Sitzungen. Wenn Sie Zugriff auf serverlose Dataproc-Notebooks oder Dataproc-Cluster mit der in Ihrem Projekt ausgeführten optionalen Jupyter-Komponente haben, kann der Abschnitt auch die Abschnitte Dataproc Serverless Notebooks und Dataproc Cluster Notebooks enthalten.

    2. Die interaktive Dataproc Serverless for Spark-Sitzung wird standardmäßig in dem Projekt und der Region ausgeführt, die Sie bei der Ausführung von gcloud init unter Vorbereitung festgelegt haben. Sie können die Projekt- und Regionseinstellungen für Ihre Sitzungen über die Seite Einstellungen > Dataproc-Einstellungen von JupyterLab ändern.

Dataproc Serverless-Laufzeitvorlage erstellen

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

JupyterLab

  1. Klicken Sie auf der JupyterLab-Launcher-Seite 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 anderen Einstellungen ein oder bestätigen Sie sie.

    Hinweise:

    • Netzwerkkonfiguration: Für das Subnetzwerk muss der private Google-Zugriff aktiviert sein und die Subnetzkommunikation an allen Ports zulassen (siehe Dataproc Serverless für Spark-Netzwerk).

      Wenn das Subnetz des Netzwerks default für die Region, die Sie bei der Ausführung von gcloud init unter Vorbereitung konfiguriert haben, nicht für den privater Google-Zugriff aktiviert ist:

      • Privaten Google-Zugriff aktivieren 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 Dataproc Serverless verwendet, in JupyterLab auf der Seite Einstellungen > Dataproc-Einstellungen ändern.
    • Metastore Wählen Sie zur Verwendung eines Dataproc Metastore-Dienstes in Ihren Sitzungen die Projekt-ID, die Region und den Dienst des Metastores aus.

    • Maximale Inaktivitätszeit: Die maximale Inaktivitätszeit des Notebooks, bevor die Sitzung beendet wird. Zulässiger Zeitraum: 10 Minuten bis 336 Stunden (14 Tage).

    • Maximale Sitzungsdauer:Die maximale Lebensdauer einer Sitzung, bevor sie beendet wird. Zulässiger Zeitraum: 10 Minuten bis 336 Stunden (14 Tage).

    • PHS: Sie können einen verfügbaren nichtflüchtigen Spark-Verlaufsserver auswählen, damit Sie während und nach Sitzungen auf Sitzungslogs zugreifen können.

    • Spark-Attribute: Klicken Sie für jedes Attribut, das für Ihre serverlosen Spark-Sitzungen festgelegt werden soll, auf Attribut hinzufügen. Unter Spark-Attribute finden Sie eine Liste unterstützter und nicht unterstützter Spark-Attribute, einschließlich Spark-Laufzeit-, -Ressourcen und -Autoscaling-Attribute.

    • Labels: Klicken Sie für jedes Label auf Label hinzufügen, um es für Ihre serverlosen Spark-Sitzungen festzulegen.

  4. Rufen Sie Ihre Laufzeitvorlagen auf der Seite Einstellungen > Dataproc-Einstellungen auf.

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

  6. Öffnen Sie die JupyterLab-Launcher-Seite und laden Sie sie neu, um die gespeicherte Notebook-Vorlagenkarte auf der JupyterLab-Launcher-Seite anzusehen.

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-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 Netzwerks default für die Region, die Sie bei der Ausführung von gcloud init unter Vorbereitung konfiguriert haben, nicht für den privaten Google-Zugriff aktiviert ist:

    • Privaten Google-Zugriff aktivieren 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 Dataproc Serverless verwendet, in JupyterLab auf der Seite Einstellungen > Dataproc-Einstellungen ändern.
  2. Erstellen Sie eine Sitzungsvorlage (Laufzeit) aus der 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
    

Notebooks starten und verwalten

Nach der Installation des Dataproc JupyterLab-Plug-ins können Sie auf der JupyterLab-Seite Launcher auf Vorlagenkarten klicken, um Folgendes zu tun:

Jupyter-Notebook auf Dataproc Serverless starten

Im Abschnitt Dataproc Serverless Notebooks auf der JupyterLab Launcher-Seite werden Notebook-Vorlagenkarten angezeigt, die 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 der Notebook-Kernel einsatzbereit ist, ändert sich der Kernelstatus von Unknown in Idle.

  2. Notebook-Code schreiben und testen

    1. Kopieren Sie den folgenden PySpark-Pi estimation-Code, fügen Sie ihn in die Zelle des PySpark-Notebooks ein und drücken Sie dann Umschalttaste + Eingabetaste, 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:

  3. Nachdem Sie ein Notebook erstellt und verwendet haben, können Sie die Notebook-Sitzung beenden. Klicken Sie dazu auf dem Tab Kernel auf Kernel herunterfahren.

    • Wenn Sie die Sitzung nicht beenden, beendet Dataproc die Sitzung, wenn der Timer für die Inaktivität der Sitzung abläuft. Sie können die Leerlaufzeit in der Laufzeitvorlagenkonfiguration konfigurieren. Die Standardinaktivitätszeit für Sitzungen beträgt eine Stunde.

Notebook in einem Dataproc on Compute Engine-Cluster starten

Wenn Sie einen Dataproc-Cluster in Compute Engine erstellt haben, enthält die JupyterLab-Seite Launcher den Abschnitt Dataproc Cluster Notebook mit vorinstallierten Kernelkarten.

So starten Sie ein Jupyter-Notebook auf einem Dataproc in Compute Engine-Cluster:

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

  2. Wenn sich der Kernelstatus von Unknown zu Idle ändert, können Sie mit dem Schreiben und Ausführen von Notebook-Code beginnen.

  3. Nachdem Sie ein Notebook erstellt und verwendet haben, können Sie die Notebook-Sitzung beenden. Klicken Sie dazu auf dem Tab Kernel auf Kernel herunterfahren.

Eingabe- und Ausgabedateien in Cloud Storage verwalten

Das Analysieren explorativer Daten und das Erstellen von ML-Modellen umfasst häufig dateibasierte Ein- und Ausgaben. Dataproc Serverless greift auf diese Dateien in Cloud Storage zu.

  • Um auf den Cloud Storage-Browser zuzugreifen, klicken Sie in der Seitenleiste des JupyterLab-Launcher auf das Cloud Storage-Browsersymbol und dann doppelt auf einen Ordner, um seinen Inhalt anzusehen.

  • 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 diese in Cloud Storage geschrieben.

  • Klicken Sie zum Erstellen eines neuen Cloud Storage-Ordners auf das Symbol für einen neuen Ordner und geben Sie dann den Namen des Ordners ein.

  • Klicken Sie auf das Upload-Symbol und wählen Sie die hochzuladenden Dateien aus, um Dateien in einen Cloud Storage-Bucket oder Ordner hochzuladen.

Spark-Notebook-Code entwickeln

Nach der Installation des Dataproc JupyterLab-Plug-ins können Sie Jupyter Notebooks über die JupyterLab-Seite Launcher starten, um Anwendungscode zu entwickeln.

PySpark- und Python-Codeentwicklung

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

SQL-Codeentwicklung

Klicken Sie auf der Launcher-Seite von JupyterLab im Abschnitt Dataproc Serverless Notebooks oder Dataproc Cluster Notebook auf die PySpark-Kernelkarte, um ein PySpark-Notebook zum Schreiben und Ausführen von SQL-Code zu öffnen.

Spark SQL-Magie: Da im PySpark-Kernel, der Dataproc Serverless Notebooks startet, bereits Spark SQL-Magie installiert ist, können Sie anstelle von spark.sql('SQL STATEMENT').show() zum Verpacken der SQL-Anweisung %%sparksql magic oben in einer Zelle eingeben und dann die SQL-Anweisung in die Zelle eingeben.

BigQuery SQL:Mit dem BigQuery Spark-Connector kann Ihr Notebook-Code Daten aus BigQuery-Tabellen laden, Analysen in Spark durchfü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 Laufzeit Dataproc Serverless 2.0 oder früher verwenden, können Sie den Spark BigQuery-Connector installieren. Fügen Sie dazu der Dataproc Serverless-Laufzeitvorlage das folgende Spark-Attribut hinzu:

spark.jars: gs://spark-lib/bigquery/spark-bigquery-with-dependencies_2.12-0.25.2.jar

Scala-Codeentwicklung

Dataproc auf Compute Engine-Clustern, die mit Image-Version 2.0+, 2.1+ und höher erstellt wurden, umfassen Apache Toree, einen Scala-Kernel für die Jupyter Notebook-Plattform, der interaktiven Zugriff auf Spark bietet.

  • Klicken Sie auf der JupyterLab-Seite Launcher im Abschnitt Dataproc Cluster Notebook auf die Apache Toree-Karte, um ein Notebook für die Scala-Codeentwicklung zu öffnen.

Metadata Explorer

Wenn eine Dataproc Metastore-Instanz (DPMS) an eine Dataproc Serverless-Laufzeitvorlage oder einen Dataproc on Compute Engine-Cluster angehängt 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:

Klicken Sie in der Seitenleiste auf das entsprechende Symbol, um den JupyterLab Metadata Explorer zu öffnen.

Sie können im Metadata Explorer nach einer Datenbank, Tabelle oder Spalte suchen. Klicken Sie auf den Namen einer Datenbank, einer Tabelle oder einer Spalte, um die zugehörigen Metadaten anzusehen.

Code bereitstellen

Nach der Installation des Dataproc JupyterLab-Plug-ins können Sie JupyterLab für folgende Aufgaben verwenden:

  • Notebook-Code in der serverlosen Dataproc-Infrastruktur ausführen

  • Batchjobs an die Dataproc Serverless-Infrastruktur oder an Ihren Dataproc in Compute Engine-Cluster senden

Notebook-Code auf 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 Abschnitt Dataproc-Jobs und Sitzungen auf die Karte Serverlos.

  • Klicken Sie auf den Tab Batch, dann auf Batch erstellen und füllen Sie die Felder für Batchinformationen aus.

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

Batchjob an Dataproc on Compute Engine-Cluster senden

  • Klicken Sie auf der Launcher-Seite 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 dann die Felder unter Job aus.

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

Ressourcen ansehen und verwalten

Nach der Installation des JupyterLab-Plug-ins von Dataproc können Sie Dataproc Serverless und Dataproc on Compute Engine über den Abschnitt Dataproc-Jobs und -Sitzungen auf der JupyterLab-Seite Launcher aufrufen und verwalten.

Klicken Sie auf den Abschnitt Dataproc-Jobs und Sitzungen, um die Karten Cluster und Serverlos 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 und Sitzungsattribute anzusehen, Google Cloud-Logs im Log-Explorer aufzurufen und eine Sitzung zu beenden. Hinweis: Zum Starten jedes serverlosen Dataproc-Notebooks wird eine eindeutige Dataproc Serverless-Sitzung erstellt.

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

  1. Klicken Sie auf den Tab Batches, um die Liste der Dataproc Serverless-Batches im aktuellen Projekt und in der aktuellen Region aufzurufen. Klicken Sie auf eine Batch-ID, um die Batchdetails aufzurufen.

So rufen Sie Dataproc on Compute Engine-Cluster auf und verwalten sie:

  1. Klicken Sie auf die Karte Cluster. Der Tab Cluster ist ausgewählt, um die aktiven Dataproc on Compute Engine-Cluster im aktuellen Projekt und in der aktuellen Region aufzulisten. Klicken Sie auf Symbole in der Spalte Aktionen, um einen Cluster zu starten, zu stoppen oder neu zu starten. Klicken Sie auf einen Clusternamen, um Clusterdetails aufzurufen. Sie können auf Symbole in der Spalte Aktionen klicken, um einen Job zu klonen, zu stoppen oder zu löschen.

So rufen Sie Dataproc on Compute Engine-Jobs auf und verwalten sie:

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