Dataproc Hub ist ein benutzerdefinierter JupyterHub-Server. Administratoren konfigurieren und erstellen Dataproc Hub-Instanzen, die Einzelnutzer-Cluster für Managed Service for Apache Spark zum Hosten von Jupyter- und JupyterLab-Notebook-Umgebungen generieren können (siehe Dataproc Hub verwenden).
Notebooks für mehrere Nutzer starten Sie können eine Vertex AI Workbench-Instanz erstellen, die für Managed Service for Apache Spark aktiviert ist, oder das JupyterLab-Plug-in für Managed Service for Apache Spark auf einer VM installieren, um Notebooks für mehrere Nutzer bereitzustellen.
Ziele
Definieren Sie eine Konfiguration für einen Managed Service for Apache Spark-Cluster oder verwenden Sie eine der vordefinierten Konfigurationsdateien.
Umgebungsvariablen der Dataproc Hub-Instanz festlegen
Dataproc Hub-Instanz erstellen
Hinweis
Erstellen Sie ein Google Cloud -Projekt und einen Cloud Storage-Bucket, falls noch nicht geschehen.
Projekt einrichten
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie einfach 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Dataproc, Compute Engine, and Cloud Storage APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Dataproc, Compute Engine, and Cloud Storage APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Cloud Storage-Bucket in Ihrem Projekt erstellen, in dem die in diesem Tutorial verwendeten Daten gespeichert werden.
- Wechseln Sie in der Google Cloud Console unter „Cloud Storage“ zur Seite Buckets.
- Klicken Sie auf Erstellen.
- Geben Sie auf der Seite Bucket erstellen die Bucket-Informationen ein. Klicken Sie auf Weiter, um mit dem nächsten Schritt fortzufahren.
-
Führen Sie im Abschnitt Einstieg die folgenden Schritte aus:
- Geben Sie einen global eindeutigen Namen ein, der den Anforderungen für Bucket-Namen entspricht.
- So fügen Sie ein Bucket-Label hinzu: Maximieren Sie den Abschnitt Labels (), klicken Sie auf add_box
Label hinzufügen und geben Sie einen
keyund einenvaluefür Ihr Label an.
-
Gehen Sie im Abschnitt Speicherort für Daten auswählen so vor:
- Standorttyp auswählen.
- Wählen Sie im Drop-down-Menü Standorttyp einen Standort aus, an dem die Daten Ihres Buckets dauerhaft gespeichert werden sollen.
- Wenn Sie den Standorttyp Dual-Region auswählen, können Sie auch die Turboreplikation aktivieren, indem Sie das entsprechende Kästchen anklicken.
- Wenn Sie die Bucket-übergreifende Replikation einrichten möchten, wählen Sie Bucket-übergreifende Replikation über Storage Transfer Service hinzufügen aus und führen Sie die folgenden Schritte aus:
Bucket-übergreifende Replikation einrichten
- Wählen Sie im Menü Bucket einen Bucket aus.
Klicken Sie im Bereich Replikationseinstellungen auf Konfigurieren, um die Einstellungen für den Replikationsjob zu konfigurieren.
Der Bereich Bucket-übergreifende Replikation konfigurieren wird angezeigt.
- Wenn Sie die zu replizierenden Objekte nach dem Objektnamenspräfix filtern möchten, geben Sie ein Präfix ein, mit dem Sie Objekte ein- oder ausschließen möchten, und klicken Sie dann auf Präfix hinzufügen.
- Wenn Sie eine Speicherklasse für die replizierten Objekte festlegen möchten, wählen Sie im Menü Speicherklasse eine Speicherklasse aus. Wenn Sie diesen Schritt überspringen, verwenden die replizierten Objekte standardmäßig die Speicherklasse des Ziel-Buckets.
- Klicken Sie auf Fertig.
-
Gehen Sie im Bereich Speicherort für Daten auswählen so vor:
- Wählen Sie eine Standardspeicherklasse für den Bucket oder Autoclass für die automatische Speicherklassenverwaltung der Daten Ihres Buckets aus.
- Wenn Sie den hierarchischen Namespace aktivieren möchten, wählen Sie im Bereich Speicher für datenintensive Arbeitslasten optimieren die Option Hierarchischen Namespace für diesen Bucket aktivieren aus.
- Wählen Sie im Abschnitt Zugriff auf Objekte steuern aus, ob der Bucket Verhinderung des öffentlichen Zugriffs durchsetzt, und wählen Sie eine Zugriffssteuerungsmethode für die Objekte Ihres Buckets aus.
-
Gehen Sie im Bereich Auswählen, wie Objektdaten geschützt werden so vor:
- Wählen Sie unter Datenschutz die gewünschten Optionen für Ihren Bucket aus.
- Klicken Sie zum Aktivieren des vorläufigen Löschens das Kästchen Richtlinie für vorläufiges Löschen (zur Datenwiederherstellung) an und geben Sie die Anzahl der Tage an, die Sie Objekte nach dem Löschen aufbewahren möchten.
- Klicken Sie zum Festlegen der Objektversionsverwaltung das Kästchen Objektversionsverwaltung (zur Versionsverwaltung) an und geben Sie die maximale Anzahl von Versionen pro Objekt und die Anzahl der Tage an, nach denen die nicht aktuellen Versionen ablaufen.
- Klicken Sie das Kästchen Aufbewahrung (zur Einhaltung von Vorschriften) an, um die Aufbewahrungsrichtlinie für Objekte und Buckets zu aktivieren, und gehen Sie dann so vor:
- Klicken Sie auf das Kästchen Objektaufbewahrung aktivieren, um die Objektaufbewahrungssperre zu aktivieren.
- Wenn Sie Bucket Lock aktivieren möchten, klicken Sie das Kästchen Bucket-Aufbewahrungsrichtlinie festlegen an und wählen Sie eine Zeiteinheit und eine Zeitdauer für die Aufbewahrungsdauer aus.
- Um auszuwählen, wie Ihre Objektdaten verschlüsselt werden, maximieren Sie den Bereich Datenverschlüsselung () und wählen Sie eine Methode für die Datenverschlüsselung aus.
- Wählen Sie unter Datenschutz die gewünschten Optionen für Ihren Bucket aus.
-
Führen Sie im Abschnitt Einstieg die folgenden Schritte aus:
- Klicken Sie auf Erstellen.
Clusterkonfiguration definieren
Eine Dataproc Hub-Instanz erstellt einen Cluster auf Basis der in einer YAML-Cluster-Konfigurationsdatei enthaltenen Konfigurationswerte.
In Ihrer Clusterkonfiguration können Sie alle Features oder Komponenten angeben, die für Managed Service for Apache Spark-Cluster verfügbar sind (z. B. 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.
Beispiel für eine YAML-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, damit Nutzer eine Auswahl haben, wenn sie Dataproc Hub verwenden, um ihre Notebook-Umgebung für Managed Service for Apache Spark-Cluster zu erstellen.
Es gibt zwei Möglichkeiten, eine YAML-Clusterkonfigurationsdatei zu erstellen:
YAML-Cluster-Konfigurationsdatei über die Console erstellen
- Öffnen Sie in der Google Cloud Console die Seite Cluster erstellen und wählen Sie die Felder aus und füllen Sie sie aus, um den Typ des Clusters anzugeben, den der Dataproc Hub für Nutzer erstellen soll.
- Wählen Sie unten im linken Bereich „REST-Äquivalent“ aus.
- 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”.
- Kopieren Sie die konvertierte YAML-Datei in eine lokale cluster-config-filename.yaml-Datei.
YAML-Cluster-Konfigurationsdatei aus einem vorhandenen Cluster erstellen
- Erstellen Sie einen Cluster, der Ihren Anforderungen entspricht.
- 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-Konfigurationsdatei des Clusters in Ihren Cloud Storage-Bucket.
gcloud storage cp cluster-config-filename.yaml gs://bucket-name/
Umgebungsvariablen der Dataproc Hub-Instanz festlegen
Der Administrator kann die unten in der Tabelle aufgeführten Hub-Umgebungsvariablen festlegen, um Attribute der Managed Service for Apache Spark-Cluster festzulegen, die von Hub-Nutzern erstellt 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 Managed Service for Apache Spark-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 Managed Service for Apache Spark-Cluster erstellt wird. Standard: „b”. | b, c, d |
| DATAPROC_DEFAULT_SUBNET | Das Subnetz, in dem die Dataproc Hub-Instanz Managed Service for Apache Spark-Cluster startet. 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, unter dem Managed Service for Apache Spark-VMs ausgeführt werden. Standard: Wenn nicht festgelegt, wird das Standarddienstkonto von Managed Service for Apache Spark verwendet. | service-account@project-id.iam.gserviceaccount.com |
| SPAWNER_DEFAULT_URL | Gibt an, ob die Jupyter- oder JupyterLab-Benutzeroberfläche standardmäßig in erstellten Managed Service for Apache Spark-Clustern angezeigt werden soll. Standard: „/lab”. | „/” oder „/lab” für Jupyter bzw. JupyterLab. |
| DATAPROC_ALLOW_CUSTOM_CLUSTERS | Gibt an, ob Nutzer ihre Managed Service for Apache Spark-Cluster anpassen können. Standard: false. | „true” oder „false” |
| DATAPROC_MACHINE_TYPES_LIST | Liste der Maschinentypen, die Nutzer für erstellte Managed Service for Apache Spark-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 Notebook-Bucket oder Bucket-Ordner, der beim Start des Clusters in den erstellten Managed Service for Apache Spark-Cluster heruntergeladen werden soll. Standard: leer. | gs://bucket-name/ |
Hub-Umgebungsvariablen festlegen
Es gibt zwei Möglichkeiten, Hub-Umgebungsvariablen festzulegen:
Hub-Umgebungsvariablen über die Console festlegen
Wenn Sie auf der Seite Dataproc → Workbench in der Google Cloud Console auf dem Tab Nutzerverwaltete Notebooks eine Dataproc Hub-Instanz erstellen, können Sie auf den Button Ausfüllen klicken, um das Formular Dataproc Hub ausfüllen zu öffnen. Dort können Sie die einzelnen Umgebungsvariablen festlegen.
Hub-Umgebungsvariablen in einer Textdatei festlegen
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
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
- Managed Service for Apache Spark-Dienstkonto: Stellt den Managed Service for Apache Spark-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
Hinweis: Wenn Sie eine Managed Service for Apache Spark Hub-Instanz über die Google Cloud Console erstellen möchten, muss Ihr Nutzerkonto die Berechtigung
compute.instances.createhaben. Außerdem muss das Dienstkonto der Instanz – das Compute Engine-Standarddienstkonto oder das von Ihnen angegebene Dienstkonto, das unter IAM & Verwaltung > Dienstkonten aufgeführt ist (siehe Dienstkonto für Managed Service for Apache Spark-VM) – die Berechtigungiam.serviceAccounts.actAshaben.Rufen Sie in der Google Cloud Console die Seite Dataproc → Workbench auf und wählen Sie den Tab Nutzerverwaltete Notebooks aus.
Wenn sie nicht bereits als Filter ausgewählt ist, klicken Sie in das Feld Filter und wählen Sie **Umgebung:Dataproc Hub** aus.
Klicken Sie auf Neues Notebook → Dataproc-Hub.
Geben Sie auf der Seite Nutzerverwaltetes Notebook erstellen die folgenden Informationen an:
- Notebook-Name: Name der Dataproc Hub-Instanz.
- Region: Wählen Sie eine Region für die Dataproc Hub-Instanz aus. Von dieser Dataproc Hub-Instanz erstellte Managed Service for Apache Spark-Cluster werden ebenfalls in dieser Region erstellt.
- Zone: Wählen Sie eine Zone in der ausgewählten Region aus.
- Umgebung:
Environment: Wählen SieDataproc Hubaus.Select a script to run after creation(optional): Sie können ein Skript oder eine ausführbare Datei für eine Initialisierungsaktion einfügen oder suchen und auswählen, die auf dem erstellten Managed Service for Apache Spark-Cluster ausgeführt werden soll.Populate Dataproc Hub (optional): Klicken Sie auf Populate, um ein Formular zu öffnen, in dem Sie die einzelnen Hub-Umgebungsvariablen festlegen können. Eine Beschreibung der einzelnen Variablen finden Sie unter Umgebungsvariablen für Dataproc Hub-Instanz festlegen. Managed Service for Apache Spark verwendet Standardwerte für alle nicht festgelegten Umgebungsvariablen. Alternativ können Sie Metadaten-key:value-Paare festlegen, um Umgebungsvariablen festzulegen (siehe nächster Punkt).Metadata:- Wenn Sie eine Textdatei mit den Einstellungen für die Hub-Umgebungsvariablen erstellt haben (siehe Hub-Umgebungsvariablen festlegen), geben Sie den Namen der Datei als
keyund dengs://bucket-name/folder-name/environment-variable-filenameCloud Storage-Speicherort der Datei alsvaluean. Managed Service for Apache Spark verwendet Standardwerte für alle nicht festgelegten Umgebungsvariablen.
- Wenn Sie eine Textdatei mit den Einstellungen für die Hub-Umgebungsvariablen erstellt haben (siehe Hub-Umgebungsvariablen festlegen), geben Sie den Namen der Datei als
- Maschinenkonfiguration:
Machine Type: Wählen Sie den Compute Engine-Maschinentyp aus.- Legen Sie weitere Optionen zur Maschinenkonfiguration fest.
- Weitere Optionen:
- Sie können Standardwerte in den Abschnitten Laufwerke, Netzwerk, Berechtigung, Sicherheit und Umgebungsupgrade und Systemzustand maximieren und festlegen oder ersetzen.
- Klicken Sie auf Erstellen, um die Dataproc Hub-Instanz zu starten.
Der Link JupyterLab öffnen für die Dataproc Hub-Instanz wird nach dem Erstellen der Instanz aktiv. Nutzer klicken auf diesen Link, um die JupyterHub-Serverseite zu öffnen, auf der sie einen Managed Service for Apache Spark-JupyterLab-Cluster konfigurieren und erstellen können (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