Dataproc-Hub konfigurieren


Dataproc Hub ist ein benutzerdefinierter JupyterHub-Server. Administratoren konfigurieren und erstellen Dataproc Hub-Instanzen, die Dataproc-Cluster für einzelne Nutzer zum Hosten von Jupyter- und JupyterLab-Notebook-Umgebungen erstellen können (siehe Dataproc Hub verwenden).

Notebooks für mehrere Nutzer starten Sie können eine Dataproc-kompatible Vertex AI Workbench-Instanz erstellen oder das Dataproc JupyterLab-Plug-in auf einer VM installieren, um Notebooks für mehrere Nutzer bereitzustellen.

Lernziele

  1. Definieren Sie eine Dataproc-Clusterkonfiguration (oder verwenden Sie eine der vordefinierten Konfigurationsdateien).

  2. Umgebungsvariablen der Dataproc Hub-Instanz festlegen

  3. Dataproc Hub-Instanz erstellen

Hinweis

Erstellen Sie ein Google Cloud-Projekt und einen Cloud Storage-Bucket, falls noch nicht geschehen.

  1. Projekt einrichten

    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. Make sure that billing is enabled for your Google Cloud project.

    4. Enable the Dataproc, Compute Engine, and Cloud Storage APIs.

      Enable the APIs

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

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

      Go to project selector

    8. Make sure that billing is enabled for your Google Cloud project.

    9. Enable the Dataproc, Compute Engine, and Cloud Storage APIs.

      Enable the APIs

    10. Install the Google Cloud CLI.
    11. To initialize the gcloud CLI, run the following command:

      gcloud init

  2. Cloud Storage-Bucket im Projekt für die in dieser Anleitung verwendeten Daten erstellen

    1. In the Google Cloud console, go to the Cloud Storage Buckets page.

      Go to Buckets page

    2. Click Create bucket.
    3. On the Create a bucket page, enter your bucket information. To go to the next step, click Continue.
      • For Name your bucket, enter a name that meets the bucket naming requirements.
      • For Choose where to store your data, do the following:
        • Select a Location type option.
        • Select a Location option.
      • For Choose a default storage class for your data, select a storage class.
      • For Choose how to control access to objects, select an Access control option.
      • For Advanced settings (optional), specify an encryption method, a retention policy, or bucket labels.
    4. Click Create.

Clusterkonfiguration definieren

Eine Dataproc Hub-Instanz erstellt einen Cluster auf Basis der in einer YAML-Cluster-Konfigurationsdatei enthaltenen Konfigurationswerte.

In der Clusterkonfiguration können alle für Dataproc-Cluster verfügbaren Funktionen oder Komponenten angegeben werden, z. B. der Maschinentyp, Initialisierungsaktionen und optionale Komponenten. Die Version des Cluster-Images muss mindestens 1.4.13 oder höher sein. Der Versuch, einen Cluster mit einer Image-Version unter 1.4.13 zu erzeugen, führt zu einem Fehler und schlägt fehl.

YAML-Beispiel-Clusterkonfigurationsdatei

clusterName: cluster-name
config:
  softwareConfig:
    imageVersion: 2.2-ubuntu22
    optionalComponents:
    - JUPYTER

Jede Konfiguration muss in Cloud Storage gespeichert werden. Sie können mehrere Konfigurationsdateien erstellen und speichern, um Nutzern die Wahl zu geben, wenn sie Dataproc Hub verwenden, um die Dataproc-Cluster-Notebookumgebung zu erstellen.

Es gibt zwei Möglichkeiten, eine YAML-Clusterkonfigurationsdatei zu erstellen:

  1. YAML-Cluster-Konfigurationsdatei über die Console erstellen

  2. YAML-Cluster-Konfigurationsdatei aus einem vorhandenen Cluster erstellen

YAML-Cluster-Konfigurationsdatei über die Console erstellen

  1. Öffnen Sie die Seite Cluster erstellen in der Google Cloud Console und wählen und füllen Sie die Felder aus, um den Clustertyp anzugeben, den der Dataproc Hub für Nutzer erzeugt.
    1. Wählen Sie unten im linken Bereich „REST-Äquivalent“ aus.
    2. Kopieren Sie den generierten JSON-Block ohne die führende POST-Anfragezeile und fügen Sie dann den JSON-Block in einen Online-JSON-to-YAML-Converter ein. Suchen Sie online hierfür nach „JSON in YAML konvertieren”.
    3. Kopieren Sie die konvertierte YAML-Datei in eine lokale cluster-config-filename.yaml-Datei.

YAML-Cluster-Konfigurationsdatei aus einem vorhandenen Cluster erstellen

  1. Erstellen Sie einen Cluster, der Ihren Anforderungen entspricht.
  2. Exportieren Sie die Clusterkonfiguration in eine lokale cluster-config-filename.yaml-Datei.
    gcloud dataproc clusters export cluster-name \
        --destination cluster-config-filename.yaml  \
        --region region
     

YAML-Konfigurationsdatei in Cloud Storage speichern

Kopieren Sie die lokale YAML-Clusterkonfigurationsdatei in den Cloud Storage-Bucket.

gcloud storage cp cluster-config-filename.yaml gs://bucket-name/

Umgebungsvariablen der Dataproc Hub-Instanz festlegen

Der Administrator kann die in der folgenden Tabelle aufgeführten Hub-Umgebungsvariablen festlegen, um Attribute der Dataproc-Cluster festzulegen, die von Hub-Nutzern generiert werden.

Variable Beschreibung Beispiel
NOTEBOOKS_LOCATION Cloud Storage-Bucket oder Bucket-Ordner, der Nutzer-Notebooks enthält. Das Präfix „gs://” ist optional. Standard: Der Dataproc-Staging-Bucket. gs://bucket-name/
DATAPROC_CONFIGS Durch Kommas getrennte Liste von Strings der Cloud Storage-Pfade zu YAML-Cluster-Konfigurationsdateien. Das Präfix „gs://” ist optional. Standard: gs://dataproc-spawner-dist/example-configs/. Enthält die vordefinierte example-cluster.yaml und example-single-node.yaml. gs://cluster-config-filename.yaml
DATAPROC_LOCATIONS_LIST Zonensuffixe in der Region, in der sich die Dataproc Hub-Instanz befindet. Nutzer können eine dieser Zonen als Zone auswählen, in der ihr Dataproc-Cluster erstellt wird. Standard: „b”. b, c, d
DATAPROC_DEFAULT_SUBNET Subnetz, in dem die Dataproc Hub-Instanz Dataproc-Cluster erzeugt. Standard: Das Subnetz der Dataproc Hub-Instanz. https://www.googleapis.com/compute/v1/projects/project-id/regions/region/subnetworks/subnet-name
DATAPROC_SERVICE_ACCOUNT Dienstkonto, in dem Dataproc-VMs ausgeführt werden. Standardeinstellung: Wenn nicht festgelegt, wird das Standard-Dataproc-Dienstkonto verwendet. service-account@project-id.iam.gserviceaccount.com
SPAWNER_DEFAULT_URL Gibt an, ob die Jupyter- oder JupyterLab-UI auf generierten Dataproc-Clustern standardmäßig angezeigt werden soll. Standard: „/lab”. „/” oder „/lab” für Jupyter bzw. JupyterLab.
DATAPROC_ALLOW_CUSTOM_CLUSTERS Gibt an, ob Nutzer ihre Dataproc-Cluster anpassen können. Standard: false. „true” oder „false”
DATAPROC_MACHINE_TYPES_LIST Liste der Maschinentypen, die Nutzer für erstellte Dataproc-Cluster auswählen können, wenn die Clusteranpassung (DATAPROC_ALLOW_CUSTOM_CLUSTERS) aktiviert ist. Standard: Leer (alle Maschinentypen sind zulässig). n1-standard-4,n1-standard-8,e2-standard-4,n1-highcpu-4
NOTEBOOKS_EXAMPLES_LOCATION Cloud Storage-Pfad zum Notebooks-Bucket oder Bucket-Ordner, der beim Start des Clusters in den generierten Dataproc-Cluster heruntergeladen werden soll. Standard: leer. gs://bucket-name/

Hub-Umgebungsvariablen festlegen

Es gibt zwei Möglichkeiten, Hub-Umgebungsvariablen festzulegen:

  1. Hub-Umgebungsvariablen in der Console festlegen

  2. Hub-Umgebungsvariablen in einer Textdatei festlegen

Hub-Umgebungsvariablen über die Console festlegen

Wenn Sie eine Dataproc Hub-Instanz erstellen, indem Sie in der Google Cloud Console auf der Seite Dataproc → Workbench auf dem Tab Nutzerverwaltete Notebooks auf die Schaltfläche Ausfüllen klicken, wird das Formular Dataproc Hub ausfüllen geöffnet, mit dem Sie die einzelnen Umgebungsvariablen festlegen können.

Hub-Umgebungsvariablen in einer Textdatei festlegen

  1. Erstellen Sie die Datei. Sie können die Umgebungsvariablen der Dataproc Hub-Instanz in einem Texteditor in einem lokalen Editor festlegen. Alternativ können Sie die Datei erstellen, indem Sie den folgenden Befehl ausführen, nachdem Sie Platzhalterwerte eingegeben und Variablen oder deren Werte geändert oder hinzugefügt haben.

    cat <<EOF > environment-variables-file
    DATAPROC_CONFIGS=gs://bucket/cluster-config-filename.yaml
    NOTEBOOKS_LOCATION=gs://bucket/notebooks
    DATAPROC_LOCATIONS_LIST=b,c
    EOF
    

  2. Speichern Sie die Datei in Cloud Storage. Kopieren Sie die lokale Umgebungsvariablen aus der Dataproc Hub-Instanz in Ihren Cloud Storage-Bucket.

    gcloud storage cp environment-variable-filename gs://bucket-name/folder-name/

IAM-Rollen (Identity and Access Management) festlegen

Dataproc Hub enthält die folgenden Identitäten mit den folgenden Funktionen:

  • Administrator: Dataproc-Hub-Instanz wird erstellt
  • Daten- und ML-Nutzer: Zugriff auf die Dataproc-Hub-UI
  • Dataproc Hub-Dienstkonto: steht für Dataproc Hub
  • Dataproc-Dienstkonto: stellt den Dataproc-Cluster dar, der von Dataproc Hub erstellt wird.

Jede Identität benötigt bestimmte Rollen oder Berechtigungen, um die zugehörigen Aufgaben auszuführen. In der folgenden Tabelle sind die IAM-Rollen und -Berechtigungen der einzelnen Identitäten zusammengefasst.

Identität Typ Rolle oder Berechtigung
Dataproc Hub-Administrator Nutzer- oder Dienstkonto roles/notebooks.admin
Dataproc Hub-Nutzer Nutzer notebooks.instances.use, dataproc.clusters.use
Dataproc-Hub Dienstkonto roles/dataproc.hubAgent
Dataproc Dienstkonto roles/dataproc.worker

Dataproc Hub-Instanz erstellen

  1. Vorbereitung: Zum Erstellen einer Dataproc Hub-Instanz über die Google Cloud Console muss Ihr Nutzerkonto die Berechtigung compute.instances.create haben. Außerdem das Dienstkonto der Instanz: das Compute Engine-Standarddienstkonto oder Ihr benutzerdefiniertes Dienstkonto unter IAM & Verwaltung > Dienstkonten (siehe Dataproc-VM-Dienstkonto) – muss die Berechtigung iam.serviceAccounts.actAs haben.

  2. Rufen Sie in der Google Cloud Console die Seite Dataproc → Workbench auf und wählen Sie den Tab Nutzerverwaltete Notebooks aus.

  3. Wenn dieser Filter nicht bereits ausgewählt ist, klicken Sie in das Feld Filter und wählen Sie „**Environment:Dataproc Hub“ aus.

  4. Klicken Sie auf Neues Notebook → Dataproc Hub.

  5. Geben Sie auf der Seite Nutzerverwaltetes Notebook erstellen die folgenden Informationen an:

    1. Notebook-Name: Name der Dataproc Hub-Instanz.
    2. Region: Wählen Sie eine Region für die Dataproc Hub-Instanz aus. Von dieser Dataproc Hub-Instanz erzeugte Dataproc-Cluster werden ebenfalls in dieser Region erstellt.
    3. Zone: Wählen Sie eine Zone in der ausgewählten Region aus.
    4. Umgebung:
      1. Environment: Wählen Sie Dataproc Hub aus.
      2. Select a script to run after creation (optional): Sie können ein Initialisierungsaktionsskript oder eine ausführbare Datei einfügen oder suchen und auswählen, die auf dem erzeugten Dataproc-Cluster ausgeführt werden soll.
      3. Populate Dataproc Hub (optional): Klicken Sie auf Ausfüllen, um ein Formular zu öffnen, mit dem Sie die einzelnen Hub-Umgebungsvariablen festlegen können. Unter Umgebungsvariablen der Dataproc Hub-Instanz festlegen finden Sie eine Beschreibung der einzelnen Variablen. Dataproc verwendet Standardwerte für alle nicht festgelegten Umgebungsvariablen. Alternativ können Sie Metadaten key:value-Paare festlegen, um Umgebungsvariablen festzulegen (siehe nächster Punkt).
      4. Metadata:
        1. Wenn Sie eine Textdatei erstellt haben, die Ihre Hub-Umgebungsvariableneinstellungen enthält, (siehe Hub-Umgebungsvariablen festlegen), geben Sie den Namen der Datei als key und den gs://bucket-name/folder-name/environment-variable-filename-Cloud Storage-Speicherort der Datei als value an. Dataproc verwendet Standardwerte für alle nicht festgelegten Umgebungsvariablen.
    5. Maschinenkonfiguration:
      1. Machine Type: Wählen Sie den Compute Engine-Maschinentyp aus.
      2. Legen Sie weitere Optionen zur Maschinenkonfiguration fest.
    6. Weitere Optionen:
      1. Sie können die Bereiche Laufwerke, Netzwerk, Berechtigung, Sicherheit und Umgebungsupgrade und Systemzustand maximieren und Standardwerte festlegen oder ersetzen.
    7. Klicken Sie auf Erstellen, um die Dataproc Hub-Instanz zu starten.
  6. Der Link JupyterLab öffnen für die Dataproc Hub-Instanz wird nach dem Erstellen der Instanz aktiv. Nutzer klicken auf diesen Link, um die Serverseite JupyterHub zu öffnen und einen Dataproc JupyterLab-Cluster zu konfigurieren und zu erstellen (siehe Dataproc Hub verwenden).

Bereinigen

Dataproc Hub-Instanz löschen

  • So löschen Sie Ihre Dataproc Hub-Instanz:
    gcloud compute instances delete --project=${PROJECT} ${INSTANCE_NAME}
    

Bucket löschen

  • So löschen Sie den Cloud Storage-Bucket, den Sie unter Hinweise erstellt haben, einschließlich der im Bucket gespeicherten Datendateien:
    gcloud storage rm gs://${BUCKET_NAME} --recursive
    

Nächste Schritte