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. 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. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

      Zur Projektauswahl

    3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

    4. Dataproc, Compute Engine, and Cloud Storage APIs aktivieren.

      Aktivieren Sie die APIs

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

      gcloud init
    7. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

      Zur Projektauswahl

    8. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

    9. Dataproc, Compute Engine, and Cloud Storage APIs aktivieren.

      Aktivieren Sie die APIs

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

      gcloud init

  2. Erstellen eines Cloud Storage-Buckets in Ihrem Projekt, um die in dieser Anleitung verwendeten Daten aufzubewahren.

    1. Wechseln Sie in der Google Cloud Console zur Cloud Storage-Seite Buckets.

      Zur Seite „Buckets“

    2. Klicken Sie auf Bucket erstellen.
    3. Geben Sie auf der Seite Bucket erstellen die Bucket-Informationen ein. Klicken Sie auf Weiter, um mit dem nächsten Schritt fortzufahren.
      • Geben Sie unter Bucket benennen einen Namen ein, der den Anforderungen für Bucket-Namen entspricht.
      • Gehen Sie unter Speicherort für Daten auswählen folgendermaßen vor:
        • Wählen Sie eine Option für Standorttyp aus.
        • Wählen Sie eine Standort-Option aus.
      • Wählen Sie unter Standardspeicherklasse für Ihre Daten auswählen eine Speicherklasse aus.
      • Wählen Sie unter Zugriffssteuerung für Objekte auswählen eine Option für die Zugriffssteuerung aus.
      • Geben Sie für Erweiterte Einstellungen (optional) eine Verschlüsselungsmethode, eine Aufbewahrungsrichtlinie oder Bucket-Labels an.
    4. Klicken Sie auf Erstellen.

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