Hinweis
- Sie müssen einen zonalen oder regionalen Standardcluster (Autopilot) von Google Kubernetes Engine erstellt haben, für den Workload Identity im Cluster aktiviert ist.
Virtuellen Dataproc in GKE-Cluster erstellen
Ein virtueller Cluster von Dataproc in GKE wird als Deployment-Plattform für Dataproc-Komponenten erstellt. Es handelt sich dabei um eine virtuelle Ressource. Im Gegensatz zu einem Legacy-Dataproc in Compute Engine-Cluster enthält es keine separaten Dataproc-Master- und -Worker-VMs. Stattdessen erstellt Dataproc in GKE Knotenpools in einem GKE-Cluster, wenn Sie einen virtuellen Cluster in Dataproc on GKE erstellen. Dataproc in GKE-Jobs werden als Pods in diesen Knotenpools ausgeführt. Die Knotenpools und die Planung von Pods in den Knotenpools werden von GKE verwaltet.
- Mehrere virtuelle Cluster erstellen: Sie können mehrere virtuelle Cluster in einem GKE-Cluster erstellen und ausführen, um eine verbesserte Ressourcennutzung zu erhalten. Dazu teilen Sie Knotenpools über die virtuellen Cluster. Jeder virtuelle Cluster wird mit separaten Attributen, einschließlich der Spark-Engine-Version und der Workload Identity, erstellt und in einem separaten GKE-Namespace im GKE-Cluster isoliert. Beim Löschen eines oder mehrerer Dataproc-Cluster in GKE werden die zugehörigen Knotenpools nicht gelöscht. Die Knotenpools werden gelöscht, wenn der GKE-Cluster gelöscht wird (siehe Löschung von Knotenpools).
Console
Rufen Sie in der Google Cloud Console die Dataproc-Seite Cluster auf.
Klicken Sie auf Cluster erstellen.
Klicken Sie im Dialogfeld Dataproc-Cluster erstellen in der Zeile Cluster in GKE auf Erstellen.
Im Bereich Cluster einrichten:
- Geben Sie im Feld Clustername einen Namen für den Cluster ein.
- Wählen Sie in der Liste Region eine Region für den virtuellen Dataproc-Cluster in Cluster aus. Dies muss dieselbe Region sein, in der sich der vorhandene GKE-Cluster befindet (die Sie im nächsten Element auswählen).
- Klicken Sie im Feld Kubernetes-Cluster auf Suchen, um die Region auszuwählen, in der sich der vorhandene GKE-Cluster befindet.
- (Optional) Im Feld Cloud Storage-Staging-Bucket können Sie auf Durchsuchen klicken, um einen vorhandenen Cloud Storage-Bucket auszuwählen, den Dataproc in GKE zum Bereitstellen von Artefakten verwendet. Ignorieren Sie dieses Feld, damit Dataproc in GKE einen Staging-Bucket erstellt.
Klicken Sie im linken Bereich auf Knotenpools konfigurieren und dann im Bereich Knotenpools auf Pool hinzufügen.
- So verwenden Sie einen vorhandenen Dataproc in GKE-Knotenpool:
- Klicken Sie auf Vorhandenen Knotenpool wiederverwenden.
- Geben Sie den Namen des vorhandenen Knotenpools ein und wählen Sie seine Rolle aus. Mindestens ein Knotenpool muss die Rolle DEFAULT haben.
- Klicken Sie auf Fertig.
- So erstellen Sie einen neuen Dataproc in GKE-Knotenpool:
- Klicken Sie auf Neuen Knotenpool erstellen.
- Geben Sie die Werte für den Knotenpool, die Rolle, den Standort (Zone innerhalb des Dataproc in GKE-Clusterregion), den Maschinentyp, die CPU-Plattform, die Präemption, Min. (Mindestknotenanzahl) und Max. Knoten (Anzahl der Knoten) ein. Die maximale Anzahl von Knoten muss größer als 0 sein und mindestens ein Knotenpool muss die Rolle DEFAULT haben.
- Klicken Sie auf Pool hinzufügen, um weitere Knotenpools hinzuzufügen. Alle Knotenpools müssen den Standort haben. Sie können insgesamt vier Knotenpools hinzufügen.
- So verwenden Sie einen vorhandenen Dataproc in GKE-Knotenpool:
(Optional) Wenn Sie einen Dataproc Persistent History Server (PHS) eingerichtet haben, um den Verlauf von aktiven und gelöschten Dataproc-Clustern in GKE aufzurufen, klicken Sie auf Cluster anpassen. Suchen Sie dann im Feld Verlaufsserver-Cluster den PHS-Cluster und wählen Sie ihn aus. Der PHS-Cluster muss sich in derselben Region wie der virtuelle Dataproc-Cluster in GKE befinden.
Klicken Sie auf Erstellen, um den Dataproc-Cluster zu erstellen. Ihr Dataproc in GKE-Cluster wird in einer Liste auf der Seite Cluster angezeigt. Der Status lautet Provisioning (Bereitstellung), bis der Cluster einsatzbereit ist, und der Status wird dann in Running (Aktiv) geändert.
gcloud
Legen Sie Umgebungsvariablen fest und führen Sie dann den Befehl gcloud dataproc clusters gke create
lokal oder in Cloud Shell aus, um einen Dataproc in GKE-Cluster zu erstellen.
Legen Sie Umgebungsvariablen fest:
DP_CLUSTER=Dataproc on GKE cluster-name \ REGION=region \ GKE_CLUSTER=GKE cluster-name \ BUCKET=Cloud Storage bucket-name \ DP_POOLNAME=node pool-name PHS_CLUSTER=Dataproc PHS server name
Hinweise:- DP_CLUSTER: Legen Sie den Namen des virtuellen Dataproc-Clusters fest. Dieser muss mit einem Kleinbuchstaben beginnen, gefolgt von bis zu 54 Kleinbuchstaben, Ziffern oder Bindestrichen. Er darf nicht mit einem Bindestrich enden.
- REGION: Die region muss mit der Region übereinstimmen, in der sich der GKE-Cluster befindet.
- GKE_CLUSTER: Der Name Ihres vorhandenen GKE-Clusters.
- BUCKET (optional): Sie können den Namen eines Cloud Storage-Buckets angeben, den Dataproc zum Bereitstellen von Artefakten verwendet. Wenn Sie keinen Bucket angeben, erstellt Dataproc in GKE einen Staging-Bucket.
- DP_POOLNAME: Der Name eines Knotenpools, der im GKE-Cluster erstellt werden soll.
- PHS_CLUSTER (optional): Dataproc PHS Server zum Aufrufen des Spark-Jobverlaufs für aktive und gelöschte Dataproc-Cluster in GKE. Der PHS-Cluster muss sich in derselben Region wie der Dataproc-Cluster von GKE befinden.
Führen Sie diesen Befehl aus:
gcloud dataproc clusters gke create ${DP_CLUSTER} \ --region=${REGION} \ --gke-cluster=${GKE_CLUSTER} \ --spark-engine-version=latest \ --staging-bucket=${BUCKET} \ --pools="name=${DP_POOLNAME},roles=default" \ --setup-workload-identity \ --history-server-cluster=${PHS_CLUSTER}
Hinweise:--spark-engine-version
: Dies ist die Spark-Image-Version, die im Dataproc-Cluster verwendet wird. Du kannst eine Kennzeichnung wie3
,3.1
oderlatest
verwenden oder die vollständige Subversion, z. B.3.1-dataproc-5
, angeben.--staging-bucket
: Löschen Sie dieses Flag, damit Dataproc in GKE einen Staging-Bucket erstellt.--pools
: Dieses Flag wird verwendet, um einen neuen oder vorhandenen Knotenpool anzugeben, den Dataproc erstellt oder zum Ausführen der Arbeitslast verwendet. Listen Sie die Dataproc-Knoteneinstellungen für GKE auf, die durch Kommas getrennt sind, z. B.--pools=name=dp-default,roles=default,machineType=e2-standard-4,min=0,max=10
. Sie müssen die Knotenpoolsname
undrole
angeben. Die anderen Einstellungen sind optional. Sie können mehrerepools
-Flags verwenden, um mehrere Knotenpools anzugeben, aber mindestens eine Knotenabfrage muss die Rolledefault
haben und alle Knotenpools müssen denselben Standort haben.--setup-workload-identity
: Durch dieses Flag werden Workload Identity-Bindungen aktiviert, mit denen die Kubernetes-Dienstkonten (KSAs) als standardmäßiges Dataproc-VM-Dienstkonto (Datenebene-Identität) fungieren können.
REST UND BEFEHLSZEILE
Führen Sie eine virtualClusterConfig als Teil einer Dataproc API-Anfrage cluster.create
aus.
Bevor Sie eine der Anfragedaten verwenden, nehmen Sie folgende Ersetzungen vor:
- PROJECT: Google Cloud-Projekt-ID
- REGION: Region des virtuellen Dataproc-Clusters (dieselbe Region wie die vorhandene GKE-Clusterregion)
- DP_CLUSTER: Dataproc-Clustername
- GKE_CLUSTER: GKE-Clustername
- NODE_POOL: Knotenpoolname
- PHS_CLUSTER: Name des PHS-Clusters (Persistent History Server)
- BUCKET: (Optional) Name des Staging-Buckets. Lassen Sie dieses Feld leer, damit Dataproc in GKE einen Staging-Bucket erstellt.
HTTP-Methode und URL:
POST https://dataproc.googleapis.com/v1/projects/project-id/regions/region/clusters
JSON-Text der Anfrage:
{ "clusterName":"DP_CLUSTER", "projectId":"PROJECT", "virtualClusterConfig":{ "auxiliaryServicesConfig":{ "sparkHistoryServerConfig":{ "dataprocCluster":"projects/PROJECT/regions/REGION/clusters/PHS_CLUSTER" } }, "kubernetesClusterConfig":{ "gkeClusterConfig":{ "gkeClusterTarget":"projects/PROJECT/locations/REGION/clusters/GKE_CLUSTER", "nodePoolTarget":[ { "nodePool":"projects/PROJECT/locations/REGION/clusters/GKE_CLUSTER/nodePools/NODE_POOL", "roles":[ "DEFAULT" ] } ] }, "kubernetesSoftwareConfig":{ "componentVersion":{ "SPARK":"latest" } } }, "stagingBucket":"BUCKET" } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "projectId":"PROJECT", "clusterName":"DP_CLUSTER", "status":{ "state":"RUNNING", "stateStartTime":"2022-04-01T19:16:39.865716Z" }, "clusterUuid":"98060b77-...", "statusHistory":[ { "state":"CREATING", "stateStartTime":"2022-04-01T19:14:27.340544Z" } ], "labels":{ "goog-dataproc-cluster-name":"DP_CLUSTER", "goog-dataproc-cluster-uuid":"98060b77-...", "goog-dataproc-location":"REGION", "goog-dataproc-environment":"prod" }, "virtualClusterConfig":{ "stagingBucket":"BUCKET", "kubernetesClusterConfig":{ "kubernetesNamespace":"dp-cluster", "gkeClusterConfig":{ "gkeClusterTarget":"projects/PROJECT/locations/REGION/clusters/GKE_CLUSTER", "nodePoolTarget":[ { "nodePool":"projects/PROJECT/locations/REGION/clusters/GKE_CLUSTER/nodePools/NODE_POOL", "roles":[ "DEFAULT" ] } ] }, "kubernetesSoftwareConfig":{ "componentVersion":{ "SPARK":"3.1-..." }, "properties":{ "dpgke:dpgke.unstable.outputOnly.endpoints.sparkHistoryServer":"https://...", "spark:spark.eventLog.dir":"gs://BUCKET/.../spark-job-history", "spark:spark.eventLog.enabled":"true" } } }, "auxiliaryServicesConfig":{ "sparkHistoryServerConfig":{ "dataprocCluster":"projects/PROJECT/regions/REGION/clusters/PHS_CLUSTER" } } }
Spark-Job senden
Wenn Ihr virtueller Dataproc-Cluster ausgeführt wird, senden Sie einen Spark-Job über die Google Cloud Console, die gcloud-Befehlszeile oder die Dataproc jobs.submit
API (über direkte HTTP-Anfragen oder die Cloud-Clientbibliotheken).
Beispiel für die Befehlszeile in gcloud:
gcloud dataproc jobs submit spark \ --region=${REGION} \ --cluster=${DP_CLUSTER} \ --class=org.apache.spark.examples.SparkPi \ --jars=local:///usr/lib/spark/examples/jars/spark-examples.jar \ -- 1000
Beispiel für einen CLI-PySpark-Job in gcloud:
gcloud dataproc jobs submit pyspark \ --region=${REGION} \ --cluster=${DP_CLUSTER} \ local:///usr/lib/spark/examples/src/main/python/pi.py \ -- 10
Beispiel für die Befehlszeile von gcloud-Befehlszeile:
gcloud dataproc jobs submit spark-r \ --region=${REGION} \ --cluster=${DP_CLUSTER} \ local:///usr/lib/spark/examples/src/main/r/dataframe.R
Bereinigen
Löschen Sie eine der folgenden in dieser Kurzanleitung verwendeten Ressourcen, die Sie nicht mehr verwenden möchten.
Löschen Sie Knotenpools, die vom Dataproc in GKE-Cluster verwendet werden.