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.
Spark-Batcharbeitslast senden
Console
Rufen Sie in der Google Cloud Console Dataproc-Batches auf. Klicken Sie auf Erstellen, um die Seite Batch erstellen zu öffnen.
Wählen Sie die folgenden Felder auf der Seite aus und füllen Sie sie aus, um eine Spark-Batch-Arbeitslast einzureichen, mit der der ungefähre Wert von Pi berechnet wird:
- Batch-Informationen:
- Batch-ID: Geben Sie eine ID für die Batcharbeitslast an. Dieser Wert muss zwischen 4 und 63 liegen
Kleinbuchstaben. 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 zwischen 4 und 63 liegen
Kleinbuchstaben. Gültige Zeichen sind
- Container:
- Batchtyp: Spark.
- Laufzeitversion: Die Standardlaufzeitversion ist ausgewählt. Optional können Sie einen eine nicht standardmäßige Dataproc Serverless-Laufzeitversion.
- Hauptklasse:
org.apache.spark.examples.SparkPi
- JAR-Dateien: Diese Datei ist in der serverlosen Spark-Ausführungsumgebung von Dataproc 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, unter der Standardmäßiges Compute Engine-Dienstkonto
- Netzwerkkonfiguration: Das VPC-Subnetzwerk, das Dataproc Serverless für Spark-Arbeitslasten ausführt, aktiviert sein für Privater Google-Zugriff und die anderen Anforderungen erfüllen, die in Dataproc Serverless for Spark-Netzwerkkonfiguration. In der Liste der Subnetze werden Subnetze in Ihrem ausgewählten Netzwerk angezeigt, die für den privaten Google-Zugriff aktiviert sind.
- 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 Dataproc in Compute Engine Clusterattribute Dataproc Serverless for Spark-Arbeitslastattribute enthalten keinespark:
. - Weitere Optionen:
- Sie können die Batcharbeitslast 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 Batcharbeitslasten ausführen.
- Batch-Informationen:
Klicken Sie auf SENDEN, um die Spark-Batcharbeitslast auszuführen.
gcloud
So senden Sie eine Spark-Batcharbeitslast, um den ungefähren Wert zu berechnen.
von pi
, führen Sie die folgende gcloud CLI aus
gcloud dataproc batches submit spark
in einem Terminalfenster oder in
Cloud Shell
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. wo die Arbeitslast ausgeführt wird.
- 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 Anforderungen erfüllen, die unter Dataproc Serverless for Spark-Netzwerkkonfiguration aufgeführt sind.
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]
im Befehl, um ein Subnetz anzugeben, für das der private Google-Zugriff aktiviert ist. Mit dem Befehlgcloud compute networks describe [NETWORK_NAME]
können Sie die URIs der Subnetze in einem Netzwerk auflisten.
--jars
: Die JAR-Beispieldatei ist in der Spark-Ausführungsumgebung vorinstalliert. Das Befehlsargument1000
, das an die SparkPi-Arbeitslast übergeben wird, gibt 1.000 an Iterationen der PI-Schätzlogik (Arbeitslasteingabeargumente sind nach "--" eingefügt werden.--properties
: Sie können das Flag--properties
hinzufügen, um unterstützte Spark-Properties einzugeben, die für Ihre Spark-Batcharbeitslast verwendet werden sollen.--deps-bucket
: Mit diesem Flag können Sie einen Cloud Storage-Bucket angeben, in den Dataproc Serverless Workload-Abhä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 einems
,m
,h
oderd
(Sekunden, Minuten, Stunden oder Tage) einfügen. Der Mindestwert beträgt 10 Minuten (10m
). und der Maximalwert 14 Tage (14d
) beträgt.- 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 ausgeführt werden, bis sie natürlich beendet wird (oder ewig laufen, wenn sie nicht beendet wird). - Laufzeit-Batches ab 2.1:wenn
--ttl
nicht angegeben ist Bei Batcharbeitslasten mit 2.1 oder höher wird standardmäßig4h
verwendet.
- 1.1- oder 2.0-Laufzeit-Batches: Wenn für eine 1.1- oder 2.0-Laufzeit-Batch-Arbeitslast
- Weitere Optionen:Sie können
gcloud dataproc batches submit
Befehls-Flags zum Angeben anderer Arbeitslastoptionen und Spark-Attribute.- 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 \ --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. Die 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
- Senden Sie eine Batcharbeitslast, indem Sie den ausgeführten Persistent History Server angeben.
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. Die PHS muss sich in der Region befinden, in der Sie Batch-Arbeitslasten ausführen, und der Cloud Storage-bucket-name muss vorhanden sein.
- Laufzeitversion:
Verwenden Sie das Flag
--version
, um Dataproc Serverless anzugeben Laufzeitversion für die Arbeitslast.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 dem Dataproc Serverless die Arbeitslast ausführt. Hinweise:
- Custom-container-image: Geben Sie das benutzerdefinierte Container-Image im Namensformat für Docker-Images an:
{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. - 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 Anforderungen erfüllen, die unter Dataproc Serverless for Spark-Netzwerkkonfiguration aufgeführt sind.
Wenn das Subnetz des Netzwerks
default
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 privaten Google-Zugriff oder
- Verwenden Sie das Feld
ExecutionConfig.subnetworkUri
, um ein Subnetz anzugeben, für das der private Google-Zugriff aktiviert ist. Sie können dengcloud compute networks describe [NETWORK_NAME]
ausführen , um die URIs von Subnetzen in einem Netzwerk aufzulisten.
sparkBatch.jarFileUris
: Die Beispiel-JAR-Datei ist in der Spark-Ausführungsumgebung vorinstalliert. Die „1000“sparkBatch.args
wird an die SparkPi-Arbeitslast übergeben und gibt 1.000 Iterationen der PI-Schätzung vor. Logik.Spark properties
: Im Feld RuntimeConfig.properties können Sie unterstützte Spark-Properties eingeben, die für Ihre Spark-Batch-Arbeitslast verwendet werden sollen.--ttl
: Mit dem FeldEnvironmentConfig.ttl
können Sie die Dauer der Batch-Lebensdauer angeben. Wenn die Arbeitslast überschreitet innerhalb dieser Dauer, wird sie bedingungslos beendet, ohne um diesen Vorgang abzuschließen. Gib die Dauer als JSON-Darstellung für Duration an. Der Mindestwert beträgt 10 Minuten und der Höchstwert 14 Tage.- Laufzeit-Batches 1.1 oder 2.0:wenn
--ttl
nicht angegeben ist Bei einer Batcharbeitslast mit einer Laufzeit von 1.1 oder 2.0 darf die Arbeitslast ausgeführt werden, bis sie beendet wird. natürlich (oder für immer laufen, falls er nicht beendet wird). - Laufzeit-Batches ab Version 2.1: Wenn
--ttl
für eine Batch-Arbeitslast der Laufzeitversion 2.1 oder höher nicht angegeben ist, wird standardmäßig „4 Stunden“ verwendet.
- Laufzeit-Batches 1.1 oder 2.0:wenn
- Weitere Optionen:
- Konfigurieren Sie die Batcharbeitslast für die Verwendung eines externen selbstverwalteten Hive Metastore.
- Verwenden Sie einen Persistent History Server (PHS). Der PHS muss sich in der Region befinden, in der Sie Batcharbeitslasten 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. Für eine Beispiel für die Ausgabe von Dataproc UsageMetrics um den Verbrauch und die Kosten der Arbeitslastressourcen zu schätzen, Siehe Dataproc Serverless-Preise .
Nächste Schritte
Hier erfahren Sie mehr über: