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

Einschränkungen und Überlegungen zu Dataproc Serverless

  • Spark-Jobs werden mit der Identität des Dienstkontos 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 VM installieren und verwenden, die Zugriff auf Google-Dienste hat, z. B. Ihren lokalen Computer oder eine Compute Engine-VM-Instanz.

So installieren Sie das Plug-in:

  1. Python 3.8+ muss auf Ihrem Computer installiert sein. Sie können Python von 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 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-Launcher-Seite wird in Ihrem Browser geöffnet. Es enthält den Abschnitt Dataproc-Jobs und -Sitzungen. Es kann auch die Abschnitte Dataproc Serverless Notebooks und Dataproc Cluster Notebooks enthalten, wenn Sie Zugriff auf serverlose Dataproc-Notebooks oder Dataproc-Cluster haben, bei denen die optionale Jupyter-Komponente in Ihrem Projekt ausgeführt wird.

    2. Standardmäßig wird Ihre Dataproc Serverless for Spark Interactive-Sitzung standardmäßig in dem Projekt und in 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 auf der Seite Einstellungen > Dataproc-Einstellungen von JupyterLab ändern.

Serverlose Dataproc-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 for Spark-Netzwerkkonfiguration).

      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:

      • den 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 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 vor dem Beenden der Sitzung. Zulässiger Bereich: 10 Minuten bis 336 Stunden (14 Tage).

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

    • Spark-Attribute: Klicken Sie für jedes Attribut, das Sie für Ihre serverlosen Spark-Sitzungen festlegen möchten, auf Attribut hinzufügen. Unter Spark-Attribute finden Sie eine Liste unterstützter und nicht unterstützter Spark-Attribute, einschließlich der Spark-Attribute für Laufzeit, Ressource und Autoscaling.

    • Labels: Klicken Sie für jedes Label, das Sie für Ihre serverlosen Spark-Sitzungen festlegen möchten, auf Label hinzufügen.

  4. Sie können Ihre Laufzeitvorlagen auf der Seite Einstellungen > Dataproc-Einstellungen ansehen.

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

  6. Öffnen Sie die JupyterLab-Launcher-Seite und aktualisieren Sie sie, um die Karte mit den gespeicherten Notebook-Vorlagen 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

    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:

    • den 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 (Laufzeitvorlage) 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
    

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 in Dataproc Serverless starten

Im Abschnitt Dataproc Serverless Notebooks auf der Seite des JupyterLab Launcher werden Notebook-Vorlagenkarten angezeigt, die den serverlosen Dataproc-Laufzeitvorlagen zugeordnet sind. Weitere Informationen finden Sie unter 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 Notebookkernel einsatzbereit ist, ändert sich der Kernel-Status von Unknown in Idle.

  2. Notebook-Code schreiben und testen.

    1. Kopieren Sie den folgenden PySpark-Pi estimation-Code und fügen Sie ihn in die PySpark-Notebookzelle ein. 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, indem Sie auf dem Tab Kernel auf Kernel herunterfahren klicken.

    • Wenn Sie die Sitzung nicht beenden, beendet Dataproc die Sitzung, sobald der Inaktivitätstimer der Sitzung abläuft. Sie können die Inaktivitätszeit für Sitzungen 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 Jupyter-Cluster in Compute Engine erstellt haben, enthält die Launcher-Seite von JupyterLab einen Abschnitt für das Dataproc-Cluster-Notebook mit vorinstallierten Kernel-Karten.

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

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

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

  3. Nachdem Sie ein Notebook erstellt und verwendet haben, können Sie die Notebook-Sitzung 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 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-Launchers auf das Symbol des Cloud Storage-Browsers und doppelklicken Sie dann auf einen Ordner, um dessen Inhalt anzusehen.

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

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

  • Wenn Sie Dateien in einen Cloud Storage-Bucket oder Ordner hochladen möchten, klicken Sie auf das Uploadsymbol und wählen Sie die hochzuladenden Dateien aus.

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

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

SQL-Codeentwicklung

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

Spark SQL-Magie: Da der PySpark-Kernel zum Starten von serverlosen Dataproc-Notebooks mit Spark SQL vorinstalliert ist, können Sie anstelle von spark.sql('SQL STATEMENT').show() zum Verpacken Ihrer SQL-Anweisung %%sparksql magic oben in eine Zelle und dann die SQL-Anweisung in die Zelle eingeben.

BigQuery SQL: Mit dem BigQuery Spark-Connector kann der Notebookcode 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 Dataproc Serverless 2.0 oder eine frühere Laufzeit verwenden, um Dataproc Serverless Notebooks zu starten, können Sie den Spark BigQuery-Connector installieren. Fügen Sie dazu das folgende Spark-Attribut in Ihre Dataproc Serverless-Laufzeitvorlage ein:

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, enthalten Apache Toree, einen Scala-Kernel für die Jupyter Notebook-Plattform, der interaktiven Zugriff auf Spark bietet.

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

Metadaten-Explorer

Wenn eine Dataproc Metastore (DPMS)-Instanz an eine serverlose Dataproc-Laufzeitvorlage oder einen Dataproc in 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 Metadaten-Explorer auf:

Klicken Sie zum Öffnen des JupyterLab Metadata Explorer auf das entsprechende Symbol in der Seitenleiste.

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

Code bereitstellen

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

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

  • Senden Sie Batchjobs an die serverlose Dataproc-Infrastruktur oder Ihren Dataproc in Compute Engine-Cluster.

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-Launcher-Seite im Abschnitt Dataproc-Jobs und -Sitzungen auf die Karte Serverlos.

  • Klicken Sie auf den Tab Batch, dann auf Create Batch (Batch erstellen) und füllen Sie die Felder Batch Info (Batchinformationen) aus.

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

Batchjob an Dataproc in Compute Engine-Cluster senden

  • Klicken Sie auf der JupyterLab-Launcher-Seite im Abschnitt 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 Dataproc JupyterLab-Plug-ins können Sie Dataproc Serverless und Dataproc in Compute Engine auf der JupyterLab-Launcher-Seite im Abschnitt Dataproc-Jobs und -Sitzungen aufrufen und verwalten.

Klicken Sie auf den Abschnitt Dataproc-Jobs und -Sitzungen, um die Karten Cluster und Serverlos aufzurufen.

So rufen Sie serverlose Dataproc-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. Hier können Sie Sitzungseigenschaften aufrufen, Google Cloud-Logs im Log-Explorer ansehen und eine Sitzung beenden. Hinweis: Zum Starten jedes serverlosen Dataproc-Notebooks wird eine eindeutige serverlose Dataproc-Sitzung erstellt.

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

  1. Klicken Sie auf den Tab Batches, um die Liste der serverlosen Dataproc-Batches im aktuellen Projekt und in der aktuellen Region aufzurufen. Klicken Sie auf eine Batch-ID, um die Batchdetails 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 die aktiven Dataproc in Compute Engine-Cluster im aktuellen Projekt und in der aktuellen Region aufzulisten. Sie können auf die Symbole in der Spalte Aktionen klicken, um einen Cluster zu starten, zu stoppen 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 in 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.