Interaktive Dataproc Serverless for Spark-Sitzung erstellen

Hier erfahren Sie, wie Sie mit Dataproc Serverless for Spark Interactive-Sitzungen Code in Jupyter-Notebooks schreiben und ausführen können.

Einschränkungen des Vorschaurelease

  • Spark-Jobs werden mit der Identität des Dienstkontos ausgeführt, nicht mit der Identität des sendenden Nutzers.
  • Abrechnungsmesswerte werden nicht in Stackdriver protokolliert (Dataproc für Spark Serverless Interactive ist während der Vorschau kostenlos).
  • GPUs werden noch nicht unterstützt.
  • Sitzungen werden unabhängig von der Attributeinstellung max session time in der Laufzeitvorlage nach 24 Stunden beendet. Diese Einschränkung wird für die GA-Version aufgehoben.

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

Serverlose interaktive Dataproc for Spark-Sitzung erstellen

Sie öffnen Jupyter-Notebooks in Dataproc Serverless für interaktive Spark-Sitzungen. Während des Release von Dataproc Serverless Interactive Preview können Sie eine Sitzung auf zwei Arten erstellen:

  1. Mit dem Dataproc JupyterLab-Plug-in können Sie Vorlagen erstellen, mit denen Nutzer Sitzungen basierend auf Vorlageneinstellungen starten können.

  2. Verwenden Sie Vertex AI Workbench, um eine von Google verwaltete Sitzung zu erstellen.

JupyterLab-Plug-in

In den folgenden Abschnitten wird gezeigt, wie Sie mit dem Dataproc JupyterLab-Plug-in eine Nutzerverwaltungssitzung von Dataproc Serverless for Spark for Spark erstellen.

Gerät einrichten

Sie können diese Kurzanleitung auf einem Computer einrichten und ausführen, der Zugriff auf Google-Dienste hat, z. B. Ihren lokalen Computer oder eine Compute Engine-VM-Instanz.

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

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

      python3 --version
      
  2. Installiere [JupyterLab 3.6.3+] und auf deinem Computer.

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

      pip3 show jupyterlab
      
  3. Dataproc JupyterLab-Plug-in installieren

    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 Jupyter-Launcher-Seite 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 sie auch die Abschnitte Dataproc Serverless Notebooks und Dataproc Cluster Notebooks enthalten.

    2. Standardmäßig wird die interaktive Dataproc Serverless for Spark-Sitzung 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 auf der JupyterLab-Seite Einstellungen > Dataproc-Einstellungen ändern.

Dataproc Serverless-Laufzeitvorlage erstellen

Dataproc Serverless-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 Bereich Dataproc Cluster 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 bestätigen Sie dann die anderen Einstellungen.

    Hinweise:

    • Netzwerkkonfiguration: Für das Subnetzwerk muss privater Google-Zugriff aktiviert sein und die Subnetzkommunikation an allen Ports zulassen (siehe Dataproc Serverless für 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, müssen Sie es für den privaten Google-Zugriff aktivieren oder ein anderes Netzwerk mit einem regionalen Subnetzwerk auswählen, für das der privater Google-Zugriff aktiviert ist. Sie können die Region, die Dataproc Serverless verwendet, auf der JupyterLab-Seite Einstellungen > Dataproc-Einstellungen ändern.

    • Metastore: Sie können die Felder in diesem Abschnitt verwenden, um einen verfügbaren Dataproc Metastore-Dienst für Ihre Sitzung auszuwählen.

    • Maximale Inaktivitätszeit: Maximale Inaktivitätszeit eines Notebooks, bevor die Sitzung automatisch beendet wird. Zulässiger Bereich: 10 Minuten bis 336 Stunden (14 Tage).

    • Maximale Sitzungsdauer:Maximale Lebensdauer einer Sitzung, bevor die Sitzung automatisch beendet wird. Zulässiger Bereich: 10 Minuten bis 336 Stunden (14 Tage).

    • PHS: Sie können einen verfügbaren nichtflüchtigen Spark-Verlaufsserver auswählen, um während und nach der Sitzung auf Sitzungslogs zuzugreifen.

    • Spark-Attribute: Klicken Sie für jedes Attribut, das für Ihre serverlosen Spark-Sitzungen festgelegt werden soll, auf Attribut hinzufügen. Eine Erläuterung der unterstützten und nicht unterstützten Spark-Attribute finden Sie unter Netzwerkkonfiguration von Dataproc Serverless for Spark.

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

  4. Auf der Seite Dataproc-Einstellungen werden Ihre Laufzeitvorlagen aufgelistet. Sie können eine Vorlage aus der Liste über das Menü Aktion für jede aufgelistete Vorlage löschen.

  5. Klicken Sie auf Speichern.

  6. Öffnen Sie die Launcher-Seite und laden Sie sie neu, um die gespeicherte Notebook-Vorlagenkarte im JupyterLab-Launcher zu sehen.

gcloud

  1. Erstellen Sie eine YAML-Datei mit Ihrer Laufzeitvorlagenkonfiguration.

    Beispiel:

    environmentConfig:
      executionConfig:
        networkUri: default
    jupyterSession:
      kernel: PYTHON
      displayName: Team A
    labels:
      purpose: testing
    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 privater Google-Zugriff aktiviert ist, müssen Sie es für den privaten Google-Zugriff aktivieren oder ein anderes Netzwerk mit einem regionalen Subnetzwerk auswählen, für das der privater Google-Zugriff aktiviert ist. Sie können die Region, die Dataproc Serverless verwendet, auf der JupyterLab-Seite Einstellungen > Dataproc-Einstellungen ändern.

  2. Führen Sie den folgenden gcloud beta dataproc session-template import-Befehl lokal oder in Cloud Shell aus, um eine Sitzungsvorlage (Laufzeit) aus einer YAML-Datei zu erstellen.

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

Notebook öffnen

Im Abschnitt Dataproc Serverless Notebooks auf der JupyterLab Launcher-Seite werden Notebook-Vorlagenkarten angezeigt, die Laufzeit-Kernels zugeordnet sind, die in Ihren serverlosen Laufzeitvorlagen angegeben sind.

  1. Klicken Sie auf eine Laufzeit-Kernelkarte, um eine Sitzung zu erstellen und ein Notebook zu öffnen. Wenn die Sitzungserstellung abgeschlossen ist und der Kernel verwendet werden kann, ändert sich der Kernelstatus von Unknown in Idle und ein Notebook wird geöffnet.

    Klicken Sie zum Aufrufen des Sitzungsstatus auf der JupyterLab-Launcher-Seite im Abschnitt Dataproc-Jobs und -Sitzung auf die Karte Serverlos und dann auf den Tab Sitzungen. Der Status der Sitzung ändert sich von Creating in Active, wenn die Sitzung vollständig bereitgestellt wurde und zur Ausführung Ihres Codes bereit ist.

  2. Code im Notebook schreiben und testen

    1. Kopieren Sie den folgenden PySpark-Pi estimation-Code und fügen Sie ihn in die PySpark-Notebook-Zelle 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. Klicken Sie dazu auf dem Tab Kernel auf Kernel herunterfahren.

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

Vertex AI

In diesem Abschnitt erfahren Sie, wie Sie mit Vertex AI Workbench eine verwaltete Sitzung erstellen und dann ein PySpark-Notebook in der Sitzung öffnen und verwenden.

  1. Rufen Sie in der Google Cloud Console die Seite Vertex AI Workbench auf. Klicken Sie auf Neues Notebook, um ein neues verwaltetes Notebook zu öffnen.
  2. Füllen Sie die Felder auf der Seite Verwaltetes Notebook erstellen aus:
    1. Notebook-Name:Geben Sie einen Namen für das Notebook ein.
    2. Region:Wählen Sie eine Region aus der Liste aus. Verwaltete Notebooks von Vertex AI sind in den aufgeführten Regionen verfügbar.
    3. Berechtigung:Wählen Sie Single user only aus.
    4. Nutzer-E-Mail:Geben Sie Ihre E-Mail-Adresse ein.
    5. Klicken Sie auf Erstellen, um das Notebook zu erstellen und zur Seite Vertex AI Workbench zurückzukehren.
  3. Ihr Notebook wird auf der Seite Vertex AI Workbench aufgelistet. Klicken Sie nach dem Aktivieren dieses Links in der Zeile Ihres Notebooks auf JupyterLab öffnen.
  4. Klicken Sie im angezeigten Dialogfeld Verwaltetes Notebook authentifizieren auf Authentifizieren, damit Vertex AI Workbench auf Ihre Daten zugreifen und Ihr verwaltetes Notebook authentifizieren kann. Wählen Sie dann Ihr Konto aus und gewähren Sie den Zugriff zum Öffnen von JupyterLab.
  5. Wählen Sie auf dem Tab Launcher Ihres Notebooks die Option Serverloses Spark aus, um eine Sitzung zu erstellen.
  6. Füllen Sie die Seite Serverlose Spark-Sitzung erstellen aus:
    1. Sitzungsname:Geben Sie einen Namen für Ihre Sitzung ein. Jede Sitzung unterstützt ein Jupyter-Notebook.
    2. Sprache:Wählen Sie PySpark aus.
    3. Ausführungskonfiguration:Lassen Sie das Dienstkontoelement leer, um das Compute Engine-Standarddienstkonto zu verwenden.
    4. Netzwerkkonfiguration:
      1. Klicken Sie auf Netzwerke in diesem Projekt. Das VPC-Subnetzwerk, das eine Sitzung ausführt, muss die unter Dataproc Serverless for Spark-Netzwerkkonfiguration aufgeführten Anforderungen erfüllen.
      2. Wählen Sie ein Netzwerk und ein Subnetzwerk innerhalb Ihres Projekts aus der Liste aus. In der Liste werden Subnetzwerke im ausgewählten Netzwerk angezeigt, die für den privaten Google-Zugriff aktiviert sind.
    5. Klicken Sie auf Senden:, um die Sitzung zu starten. Das Aktivitätsprotokoll zeigt den Fortschritt der Sitzungsinitialisierung an.
      Sie können den Status Ihrer Sitzung auch über die Dataproc-Seite Sitzungen in der Google Cloud Console überwachen.
  7. Nach Abschluss der Sitzungsinitialisierung wird in JupyterLab der Notebook-Tab Untitled.ipynb geöffnet. Kopieren Sie den folgenden PySpark-Pi estimation-Code und fügen Sie ihn in die PySpark-Notebook-Zelle 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))
    
  8. Schließen Sie den Notebook-Tab Untitled.ipynb. Dataproc Serverless versucht, die Sitzung zu erkennen und zu beenden, nachdem Sie ein Notebook in JupyterLab geschlossen haben.