Hier erfahren Sie, wie Sie mit Dataproc Serverless eine Batcharbeitslast in einer von Dataproc verwalteten Computing-Infrastruktur einreichen, die die Ressourcen nach Bedarf skaliert.
Hinweise
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Dataproc API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Dataproc API.
- Achten Sie darauf, dass der private Google-Zugriff für das regionale VPC-Subnetz aktiviert ist, in dem Sie Ihre Arbeitslast ausführen. Weitere Informationen finden Sie unter Spark-Batcharbeitslast einreichen.
Spark-Batcharbeitslast senden
Sie können die Google Cloud Console, die Google Cloud CLI oder die Dataproc Serverless API verwenden, um eine Dataproc Serverless für Spark-Batch-Arbeitslast zu erstellen und einzureichen.
Console
Rufen Sie in der Google Cloud Console Dataproc-Batches auf.
Klicken Sie auf Erstellen.
Reichen Sie eine Spark-Batcharbeitslast ein, die den ungefähren Wert von Pi berechnet, indem Sie die folgenden Felder auswählen und ausfüllen:
- Batch-Informationen:
- Batch-ID: Geben Sie eine ID für die Batcharbeitslast an. Dieser Wert muss 4–63 Kleinbuchstaben enthalten. Gültige Zeichen sind
/[a-z][0-9]-/
. - Region: Wählen Sie eine Region aus, in der Ihre Arbeitslast ausgeführt werden soll.
- Batch-ID: Geben Sie eine ID für die Batcharbeitslast an. Dieser Wert muss 4–63 Kleinbuchstaben enthalten. Gültige Zeichen sind
- Container:
- Batchtyp: Spark.
- Laufzeitversion: Die Standardlaufzeitversion ist ausgewählt. Optional können Sie eine andere als die Standardlaufzeitversion von Dataproc Serverless angeben.
- Hauptklasse:
org.apache.spark.examples.SparkPi
- Jar-Dateien (diese Datei ist in der Dataproc Serverless Spark-Ausführungsumgebung vorinstalliert).
file:///usr/lib/spark/examples/jars/spark-examples.jar
- Argumente: 1.000.
- Ausführungskonfiguration:Sie können ein Dienstkonto angeben, das für die Ausführung Ihrer Arbeitslast verwendet werden soll. Wenn Sie kein Dienstkonto angeben, wird die Arbeitslast unter dem Compute Engine-Standarddienstkonto ausgeführt. Das Dienstkonto muss die Rolle Dataproc-Worker haben.
Netzwerkkonfiguration:Das VPC-Subnetzwerk, in dem Dataproc Serverless for Spark-Arbeitslasten ausgeführt werden, muss für Privater Google-Zugriff (PGA) aktiviert sein und die anderen Anforderungen erfüllen, die unter Dataproc Serverless for Spark-Netzwerkkonfiguration aufgeführt sind.
In den Auswahlen Primäres Netzwerk und Subnetzwerk werden Netzwerke mit Subnetzen in der ausgewählten Arbeitslastregion aufgeführt, für die der privater Google-Zugriff aktiviert ist. Wählen Sie ein Netzwerk und ein Subnetz aus der Liste aus. Wenn keine Netzwerke und Subnetze aufgeführt sind, können Sie den privaten Google-Zugriff für ein VPC-Subnetz in der aktuell ausgewählten Arbeitslastregion aktivieren oder die Arbeitslastregion in eine Region mit einem aufgeführten PGA-fähigen Subnetz ändern und dann dieses Netzwerk und Subnetz auswählen.
Properties (Eigenschaften): Geben Sie den
Key
(Property-Namen) und denValue
der unterstützten Spark-Properties ein, die für Ihre Spark-Batcharbeitslast festgelegt werden sollen. Hinweis: Im Gegensatz zu Clustereigenschaften von Dataproc in der Compute Engine enthalten Dataproc Serverless-Eigenschaften für Spark-Arbeitslasten kein Präfixspark:
.Weitere Optionen:
- Sie können die Batch-Arbeitslast so konfigurieren, dass ein externer selbstverwalteter Hive Metastore verwendet wird.
- Sie können einen Persistent History Server (PHS) verwenden. Der PHS muss sich in der Region befinden, in der Sie Batch-Arbeitslasten ausführen.
- Batch-Informationen:
Klicken Sie auf Senden, um die Spark-Batcharbeitslast auszuführen.
gcloud
Wenn Sie eine Spark-Batch-Arbeitslast einreichen möchten, um den ungefähren Wert von pi
zu berechnen, führen Sie den folgenden gcloud CLI-Befehl gcloud dataproc batches submit spark
lokal in einem Terminalfenster oder in Cloud Shell aus.
gcloud dataproc batches submit spark \ --region=REGION \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ --class=org.apache.spark.examples.SparkPi \ -- 1000
Hinweise:
- REGION: Geben Sie die Region an, in der Ihre Arbeitslast ausgeführt werden soll.
- Subnetzwerk:
Das VPC-Subnetzwerk, in dem Dataproc Serverless for Spark-Arbeitslasten ausgeführt werden, muss für den privaten Google-Zugriff aktiviert sein und die anderen in der Dataproc Serverless for Spark-Netzwerkkonfiguration aufgeführten Anforderungen erfüllen.
Wenn das Subnetz des Netzwerks
default
für die im Befehlgcloud dataproc batches submit
angegebene Region nicht für den privaten Google-Zugriff aktiviert ist, müssen Sie einen der folgenden Schritte ausführen:- Aktivieren Sie das Subnetz des Standardnetzwerks für die Region für den privater Google-Zugriff oder
- Verwenden Sie das Flag
--subnet=SUBNET_URI
, um ein Subnetz anzugeben, für das der privater Google-Zugriff aktiviert ist. Mit dem Befehlgcloud compute networks describe <var>NETWORK_NAME</var>
können Sie die URIs der Subnetze in einem Netzwerk auflisten.
--jars
: Die Beispiel-JAR-Datei ist in der Spark-Ausführungsumgebung vorinstalliert. Mit dem Befehlsargument1000
, das an die SparkPi-Arbeitslast übergeben wird, werden 1.000 Iterationen der Pi-Schätzungslogik angegeben. Die Eingabeargumente für die Arbeitslast werden nach dem „--“ angegeben.--properties
: Mit diesem Flag können Sie unterstützte Spark-Properties für Ihre Spark-Batcharbeitslast eingeben.--deps-bucket
: Mit diesem Flag können Sie einen Cloud Storage-Bucket angeben, in den Dataproc Serverless Arbeitslastabhängigkeiten hochlädt. Dasgs://
-URI-Präfix des Buckets ist nicht erforderlich. Sie können den Bucket-Pfad oder den Bucket-Namen angeben, z. B. „mybucketname“. Dataproc Serverless for Spark lädt die lokalen Dateien in einen/dependencies
-Ordner im Bucket hoch, bevor die Batcharbeitslast ausgeführt wird. Hinweis:Dieses Flag ist erforderlich, wenn Ihre Batch-Arbeitslast auf Dateien auf Ihrem lokalen Computer verweist.--ttl
: Sie können das Flag--ttl
hinzufügen, um die Dauer der Batch-Lebensdauer anzugeben. Wenn die Arbeitslast diese Dauer überschreitet, wird sie bedingungslos beendet, ohne dass auf den Abschluss der laufenden Arbeit gewartet wird. Geben Sie die Dauer mit dem Suffixs
,m
,h
oderd
(Sekunden, Minuten, Stunden oder Tage) an. Der Mindestwert beträgt 10 Minuten (10m
) und der Maximalwert 14 Tage (14d
).- 1.1- oder 2.0-Laufzeit-Batches:Wenn für eine 1.1- oder 2.0-Laufzeit-Batch-Arbeitslast
--ttl
nicht angegeben ist, darf die Arbeitslast so lange ausgeführt werden, bis sie natürlich beendet wird (oder ewig, wenn sie nicht beendet wird). - Batches der Laufzeitversion 2.1 und höher:Wenn
--ttl
für eine Batch-Arbeitslast der Laufzeitversion 2.1 oder höher nicht angegeben ist, wird standardmäßig4h
verwendet.
- 1.1- oder 2.0-Laufzeit-Batches:Wenn für eine 1.1- oder 2.0-Laufzeit-Batch-Arbeitslast
--service-account
: Sie können ein Dienstkonto angeben, das zum Ausführen Ihrer Arbeitslast verwendet werden soll. Wenn Sie kein Dienstkonto angeben, wird die Arbeitslast unter dem Compute Engine-Standarddienstkonto ausgeführt. Das Dienstkonto muss die Rolle Dataproc-Worker haben.- Weitere Optionen:Sie können
gcloud dataproc batches submit spark
-Flags hinzufügen, um weitere Arbeitslastoptionen und Spark-Attribute anzugeben.- Hive-Metastore: Mit dem folgenden Befehl wird eine Batch-Arbeitslast für die Verwendung eines externen selbstverwalteten Hive-Metastores mit einer Standard-Spark-Konfiguration konfiguriert.
gcloud dataproc batches submit spark\ --properties=spark.sql.catalogImplementation=hive,spark.hive.metastore.uris=METASTORE_URI,spark.hive.metastore.warehouse.dir=WAREHOUSE_DIR> \ other args ...
- Persistent History Server:
- Mit dem folgenden Befehl wird ein PHS auf einem Dataproc-Cluster mit einem einzelnen Knoten erstellt. Der PHS muss sich in der Region befinden, in der Sie Batch-Arbeitslasten ausführen, und der Cloud Storage-bucket-name muss vorhanden sein.
gcloud dataproc clusters create PHS_CLUSTER_NAME \ --region=REGION \ --single-node \ --enable-component-gateway \ --properties=spark:spark.history.fs.logDirectory=gs://bucket-name/phs/*/spark-job-history
- Reichen Sie eine Batcharbeitslast ein und geben Sie dabei den laufenden Persistent History Server an.
gcloud dataproc batches submit spark \ --region=REGION \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ --class=org.apache.spark.examples.SparkPi \ --history-server-cluster=projects/project-id/regions/region/clusters/PHS-cluster-name \ -- 1000
- Mit dem folgenden Befehl wird ein PHS auf einem Dataproc-Cluster mit einem einzelnen Knoten erstellt. Der PHS muss sich in der Region befinden, in der Sie Batch-Arbeitslasten ausführen, und der Cloud Storage-bucket-name muss vorhanden sein.
- Laufzeitversion: Mit dem Flag
--version
können Sie die Dataproc Serverless-Laufzeitversion für die Arbeitslast angeben.gcloud dataproc batches submit spark \ --region=REGION \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ --class=org.apache.spark.examples.SparkPi \ --version=VERSION -- 1000
- Hive-Metastore: Mit dem folgenden Befehl wird eine Batch-Arbeitslast für die Verwendung eines externen selbstverwalteten Hive-Metastores mit einer Standard-Spark-Konfiguration konfiguriert.
API
In diesem Abschnitt wird gezeigt, wie Sie mithilfe der Dataproc Serverless for Spark-API batches.create
eine Batcharbeitslast erstellen, um den ungefähren Wert von pi
zu berechnen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: Eine Google Cloud-Projekt-ID.
- region: Eine Compute Engine-Region, in der die Arbeitslast mit Dataproc Serverless ausgeführt wird. Hinweise:
RuntimeConfig.containerImage
:Sie können ein benutzerdefiniertes Container-Image im Namensformat für Docker-Images angeben:{hostname}/{project-id}/{image}:{tag}
, z. B. „gcr.io/my-project-id/my-image:1.0.1“. Hinweis:Der benutzerdefinierte Container muss in Container Registry gehostet werden.ExecutionConfig.subnetworkUri
:Das VPC-Subnetz, in dem Dataproc Serverless for Spark-Arbeitslasten ausgeführt werden, muss für den privaten Google-Zugriff aktiviert sein und die anderen in der Dataproc Serverless for Spark-Netzwerkkonfiguration aufgeführten Anforderungen erfüllen. Wenn das Subnetz des Netzwerksdefault
für die angegebene Region nicht für den privaten Google-Zugriff aktiviert ist, müssen Sie einen der folgenden Schritte ausführen:- Aktivieren Sie das Subnetz des Standardnetzwerks für die Region für den privater Google-Zugriff oder
- Verwenden Sie das Feld
ExecutionConfig.subnetworkUri
, um ein Subnetz anzugeben, für das der privater Google-Zugriff aktiviert ist. Mit dem Befehlgcloud compute networks describe [NETWORK_NAME]
können Sie die URIs der Subnetze in einem Netzwerk auflisten.
sparkBatch.jarFileUris
: Die Beispiel-JAR-Datei ist in der Spark-Ausführungsumgebung vorinstalliert. „1000“sparkBatch.args
wird an die SparkPi-Arbeitslast übergeben und gibt 1.000 Iterationen der Pi-Schätzungslogik an.RuntimeConfig.properties
:In diesem Feld können Sie unterstützte Spark-Eigenschaften eingeben, die für Ihre Spark-Batcharbeitslast verwendet werden sollen.ExecutionConfig.serviceAccount
:Sie können ein Dienstkonto angeben, das zum Ausführen der Arbeitslast verwendet werden soll. Wenn Sie kein Dienstkonto angeben, wird die Arbeitslast unter dem Compute Engine-Standarddienstkonto ausgeführt. Das Dienstkonto muss die Rolle Dataproc-Worker haben.EnvironmentConfig.ttl
:Mit diesem Feld können Sie die Dauer der Batch-Lebensdauer angeben. Wenn die Arbeitslast diese Dauer überschreitet, wird sie bedingungslos beendet, ohne dass auf den Abschluss der laufenden Arbeit gewartet wird. Gib die Dauer als JSON-Darstellung für Duration an. Der Mindestwert ist 10 Minuten, der Höchstwert 14 Tage.- 1.1- oder 2.0-Laufzeit-Batches:Wenn
--ttl
für eine 1.1- oder 2.0-Laufzeit-Batch-Arbeitslast nicht angegeben ist, darf die Arbeitslast ausgeführt werden, bis sie natürlich beendet wird (oder ewig laufen, wenn sie nicht beendet wird). - Laufzeit-Batches ab Version 2.1:Wenn
--ttl
für eine Laufzeit-Batch-Arbeitslast der Version 2.1 oder höher nicht angegeben ist, wird standardmäßig „4 Stunden“ verwendet.
- 1.1- oder 2.0-Laufzeit-Batches:Wenn
- Weitere Optionen:
- Konfigurieren Sie die Batcharbeitslast für die Verwendung eines externen selbstverwalteten Hive-Metastores.
- Verwenden Sie einen Persistent History Server (PHS). Der PHS muss sich in der Region befinden, in der Sie Batch-Arbeitslasten ausführen.
- Verwenden Sie das Feld
RuntimeConfig.version
als Teil derbatches.create
-Anfrage, um eine nicht standardmäßige Dataproc Serverless-Laufzeitversion anzugeben. .
HTTP-Methode und URL:
POST https://dataproc.googleapis.com/v1/projects/project-id/locations/region/batches
JSON-Text anfordern:
{ "sparkBatch":{ "args":[ "1000" ], "jarFileUris":[ "file:///usr/lib/spark/examples/jars/spark-examples.jar" ], "mainClass":"org.apache.spark.examples.SparkPi" } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "name":"projects/project-id/locations/region/batches/batch-id", "uuid":",uuid", "createTime":"2021-07-22T17:03:46.393957Z", "sparkBatch":{ "mainClass":"org.apache.spark.examples.SparkPi", "args":[ "1000" ], "jarFileUris":[ "file:///usr/lib/spark/examples/jars/spark-examples.jar" ] }, "runtimeInfo":{ "outputUri":"gs://dataproc-.../driveroutput" }, "state":"SUCCEEDED", "stateTime":"2021-07-22T17:06:30.301789Z", "creator":"account-email-address", "runtimeConfig":{ "properties":{ "spark:spark.executor.instances":"2", "spark:spark.driver.cores":"2", "spark:spark.executor.cores":"2", "spark:spark.app.name":"projects/project-id/locations/region/batches/batch-id" } }, "environmentConfig":{ "peripheralsConfig":{ "sparkHistoryServerConfig":{ } } }, "operation":"projects/project-id/regions/region/operation-id" }
Arbeitslastkosten schätzen
Dataproc Serverless für Spark-Arbeitslasten verbraucht Data Compute Units (DCU) und Shuffle-Speicherressourcen. Ein Beispiel für die Ausgabe von Dataproc-UsageMetrics zur Schätzung des Ressourcenverbrauchs und der Kosten der Arbeitslast finden Sie unter Dataproc Serverless-Preise.
Nächste Schritte
Hier erfahren Sie mehr über: