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

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. Erstellen eines Cloud Storage-Buckets in Ihrem Projekt, um die in dieser Anleitung verwendeten Daten aufzubewahren.

    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:
  gceClusterConfig:
    metadata:
      'PIP_PACKAGES': 'google-cloud-core>=1.3.0 google-cloud-storage>=1.28.1'
  initializationActions:
  - executableFile: gs://dataproc-initialization-actions/python/pip-install.sh
  softwareConfig:
    imageVersion: 1.5-ubuntu18
    optionalComponents:
    - ANACONDA
    - 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. Wählen Sie dann die Felder aus und füllen Sie sie aus, um den Typ des Clusters anzugeben, den 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.

gsutil 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
NOTESCRIPT_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_Standorte_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/ Subnetzwerks/subnet-name
DATENPROC_SERVICE_KONTO 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_STANDARD_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
NOTESCRIPT_BEISPIEL_STANDORT Cloud Storage-Pfad zum Notebook-Bucket oder Bucket-Ordner, der beim Starten des Clusters in den generierten Dataproc-Cluster heruntergeladen werden soll. Standardeinstellung: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 Hub-Instanz über die Seite Dataproc → Notebooks-Instanzen in der Google Cloud Console erstellen, können Sie auf die Schaltfläche BELIEBIGEN klicken, um das Formular Populate Dataproc Hub zu öffnen, in dem Sie jede Variable festlegen können (siehe Dataproc Hub-Instanz erstellen).

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.

    gsutil 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. Hinweis: 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 → Notebooks-Instanzen auf.

  3. Klicken Sie auf NEUE INSTANZ → Dataproc Hub

  4. Geben Sie auf der Seite Neue Notebookinstanz folgende Informationen an:

    1. Instanzname: Name der Dataproc Hub-Instanz.
    2. Region: Wählen Sie eine Region für die Dataproc Hub-Instanz aus. Hinweis: 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. Umgebung: Wählen Sie „Dataproc Hub” aus.
      2. Wählen Sie ein Skript aus, das nach der Erstellung ausgeführt werden soll (optional): Sie können ein Initialisierungsaktionsskript oder eine ausführbare Datei einfügen oder auswählen, um sie auf dem generierten Dataproc-Cluster auszuführen.
      3. Dataproc Hub ausfüllen (optional): Klicken Sie auf POPULATE, um ein Formular zu öffnen, mit dem Sie jede der Hub-Umgebungsvariablen festlegen können. Unter Umgebungsvariablen der Dataproc Hub-Instanz festlegen können Sie sich eine Beschreibung der einzelnen Variablen ansehen. Alternativ können Sie das Feld container-env-file unten verwenden, um auf eine von Ihnen erstellte Textdatei zu verweisen, die Ihre Variableneinstellungen enthält. Hinweis: Wenn Sie keine oder alle Umgebungsvariablen festlegen, verwendet Dataproc Standardwerte für nicht definierte Variablen.
      4. Umgebungsvariablen:
        1. container-env-file (optional): Wenn Sie eine Textdatei erstellt haben, die Ihre Hub-Umgebungsvariableneinstellungen enthält, (siehe Hub-Umgebungsvariablen festlegen), geben Sie den Namen und den Cloud Storage-Speicherort ihrer Datei an.

          Example:

          gs://bucket-name/folder-name/environment-variable-filename.

          Hinweis: Wenn Sie keine oder alle Umgebungsvariablen festlegen, verwendet Dataproc Standardwerte für nicht festgelegte Variablen.

    5. Maschinenkonfiguration:
      1. Maschinentyp: Wählen Sie den Compute Engine-Maschinentyp aus.
      2. Legen Sie weitere Optionen zur Maschinenkonfiguration fest.
    6. Klicken Sie auf ERSTELLEN, um die Instanz zu starten.
  5. Wenn die Instanz ausgeführt wird, klicken Sie auf der Instanzseite von Notebooks auf den Link "JupyterLab", um auf die Instanz zuzugreifen.

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:
    gsutil -m rm -r gs://${BUCKET_NAME}
    

Weitere Informationen