Hier erfahren Sie, wie Sie mit Dataproc Serverless eine Batcharbeitslast in einer von Dataproc verwalteten Computing-Infrastruktur senden, die Ressourcen nach Bedarf skaliert.
Hinweise
- 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.
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Dataproc API aktivieren.
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Dataproc API aktivieren.
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-Batcharbeitslast zu senden, die den ungefähren Wert von Pi berechnet:
- Batch-Informationen:
- Batch-ID: Geben Sie eine ID für die Batcharbeitslast an. Dieser Wert muss 4 bis 63 kleingeschriebene Zeichen lang sein. Gültige Zeichen sind
/[a-z][0-9]-/
. - Region: Wählen Sie eine Region aus, in der Ihre Arbeitslast ausgeführt wird.
- Batch-ID: Geben Sie eine ID für die Batcharbeitslast an. Dieser Wert muss 4 bis 63 kleingeschriebene Zeichen lang sein. Gültige Zeichen sind
- Container:
- Batchtyp: Spark.
- Laufzeitversion: Die Standardlaufzeitversion wird ausgewählt. Sie können optional eine nicht standardmäßige Dataproc Serverless-Laufzeitversion 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, mit dem Ihre Arbeitslast ausgeführt werden soll. Wenn Sie kein Dienstkonto angeben, wird die Arbeitslast unter dem Compute Engine-Standarddienstkonto ausgeführt.
- Netzwerkkonfiguration:Das VPC-Subnetzwerk, das Dataproc Serverless for Spark-Arbeitslasten ausführt, muss für den privaten Google-Zugriff aktiviert sein und die anderen unter Dataproc Serverless for Spark-Netzwerkkonfiguration aufgeführten Anforderungen erfüllen. In der Liste der Subnetzwerke werden Subnetze im ausgewählten Netzwerk angezeigt, die für den privater Google-Zugriff aktiviert sind.
- Attribute: Geben Sie
Key
(Attributname) undValue
der unterstützten Spark-Attribute ein, die für die Spark-Batcharbeitslast festgelegt werden sollen. Hinweis: Im Gegensatz zu den Clusterattributen von Dataproc in Compute Engine enthalten die Arbeitslastattribute von Dataproc Serverless for Spark kein Präfixspark:
. - Weitere Optionen:
- Sie können die Batcharbeitslast für die Verwendung eines externen selbstverwalteten Hive Metastore konfigurieren.
- Sie können einen Persistent History Server (PHS) verwenden. Die 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
Wenn Sie eine Spark-Batcharbeitslast senden möchten, um den ungefähren Wert von pi
zu berechnen, führen Sie den folgenden gcloud dataproc batches submit spark
-Befehl der gcloud CLI 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 wird.
- Subnetzwerk: Das VPC-Subnetzwerk, das Dataproc Serverless for Spark-Arbeitslasten ausführt, muss für den privaten Google-Zugriff aktiviert sein und die anderen unter 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, führen Sie einen der folgenden Schritte aus:- Aktivieren Sie das Subnetz des Standardnetzwerks für die Region für den privater Google-Zugriff oder
- Verwenden Sie im Befehl das Flag
--subnet=[SUBNET_URI]
, 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 von Subnetzen in einem Netzwerk auflisten.
--jars
:Die JAR-Beispieldatei ist in der Spark-Ausführungsumgebung vorinstalliert. Das an die SparkPi-Arbeitslast übergebene Befehlsargument1000
gibt 1.000 Iterationen der PI-Schätzlogik an (die Eingabeargumente für die Arbeitslast werden nach dem „--“) eingefügt.--properties
: Sie können das Flag--properties
hinzufügen, um unterstützte Spark-Attribute einzugeben, die die Spark-Batcharbeitslast verwenden soll.--deps-bucket
: Sie können dieses Flag hinzufügen, um einen Cloud Storage-Bucket anzugeben, in den Dataproc Serverless Arbeitslastabhängigkeiten hochlädt. Das URI-Präfixgs://
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 lokale(n) Datei(en) vor dem Ausführen der Batcharbeitslast in einen/dependencies
-Ordner im Bucket hoch. Hinweis:Dieses Flag ist erforderlich, wenn Ihre Batcharbeitslast auf Dateien auf Ihrem lokalen Computer verweist.--ttl
: Sie können das Flag--ttl
hinzufügen, um die Dauer der Batchlebensdauer anzugeben. Überschreitet die Arbeitslast diese Dauer, wird sie bedingungslos beendet, ohne auf den Abschluss der laufenden Arbeit zu warten. 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 Höchstwert 14 Tage (14d
).- Laufzeit-Batches von 1.1 oder 2.0:Wenn
--ttl
für eine Batcharbeitslast der Laufzeit 1.1 oder 2.0 nicht angegeben ist, kann die Arbeitslast so lange ausgeführt werden, bis sie von selbst beendet wird (oder für unbegrenzte Zeit ausgeführt werden, wenn sie nicht beendet wird). - Laufzeit-Batches oder höher: Wenn
--ttl
für eine Laufzeit-Batcharbeitslast ab Version 2.1 oder höher nicht angegeben ist, wird standardmäßig4h
verwendet.
- Laufzeit-Batches von 1.1 oder 2.0:Wenn
- Weitere Optionen: Sie können
gcloud dataproc batches submit
-Befehls-Flags hinzufügen, um andere Arbeitslastoptionen und Spark-Attribute anzugeben.- Hive Metastore: Mit dem folgenden Befehl wird eine Batcharbeitslast für die Verwendung eines externen selbstverwalteten Hive-Metastores mithilfe einer Spark-Standardkonfiguration 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 in einem Dataproc-Cluster mit einem Knoten erstellt. Die PHS muss sich in der Region befinden, in der Sie Batcharbeitslasten ausführen, sowie die Cloud Storage-bucket-name.
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 und geben Sie 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 in einem Dataproc-Cluster mit einem Knoten erstellt. Die PHS muss sich in der Region befinden, in der Sie Batcharbeitslasten ausführen, sowie die Cloud Storage-bucket-name.
- Laufzeitversion: Verwenden Sie das Flag
--version
, um die Laufzeitversion von Dataproc Serverless für die Arbeitslast anzugeben.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 Batcharbeitslast für die Verwendung eines externen selbstverwalteten Hive-Metastores mithilfe einer Spark-Standardkonfiguration konfiguriert.
API
In diesem Abschnitt wird gezeigt, wie Sie eine Batcharbeitslast erstellen, um den ungefähren Wert von pi
mit dem Dataproc Serverless for Spark batches.create
zu berechnen.
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- project-id: Eine Google Cloud-Projekt-ID.
- region: Eine Compute Engine-Region, in der Dataproc Serverless die Arbeitslast ausführt. Hinweise:
- Custom-container-image: Geben Sie das benutzerdefinierte Container-Image im Namensformat für das Docker-Image
{hostname}/{project-id}/{image}:{tag}
an, 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, das Dataproc Serverless for Spark-Arbeitslasten ausführt, muss für den privaten Google-Zugriff
aktiviert sein und die anderen unter
Dataproc Serverless for Spark-Netzwerkkonfiguration aufgeführten Anforderungen erfüllen.
Wenn das Subnetz des
default
-Netzwerks 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 von Subnetzen in einem Netzwerk auflisten.
sparkBatch.jarFileUris
:Die JAR-Beispieldatei ist in der Spark-Ausführungsumgebung vorinstalliert. Die „1.000“sparkBatch.args
wird an die SparkPi-Arbeitslast übergeben und gibt 1.000 Iterationen der PI-Schätzlogik an.Spark properties
: Im Feld RuntimeConfig.properties können Sie unterstützte Spark-Attribute eingeben, die von der Spark-Batcharbeitslast verwendet werden sollen.--ttl
: Im FeldEnvironmentConfig.ttl
können Sie die Dauer der Batchlebensdauer angeben. Überschreitet die Arbeitslast diese Dauer, wird sie bedingungslos beendet, ohne auf den Abschluss der laufenden Arbeit zu warten. Geben Sie die Dauer als JSON-Darstellung für Dauer an. Der Mindestwert beträgt 10 Minuten und der Höchstwert 14 Tage.- Laufzeit-Batches von 1.1 oder 2.0:Wenn
--ttl
für eine Batcharbeitslast der Laufzeit 1.1 oder 2.0 nicht angegeben ist, kann die Arbeitslast so lange ausgeführt werden, bis sie von selbst beendet wird (oder für unbegrenzte Zeit ausgeführt werden, wenn sie nicht beendet wird). - Laufzeit-Batches oder höher: Wenn
--ttl
für eine Laufzeit-Batcharbeitslast ab Version 2.1 oder höher nicht angegeben ist, werden standardmäßig 4 Stunden verwendet.
- Laufzeit-Batches von 1.1 oder 2.0:Wenn
- Weitere Optionen:
- Konfigurieren Sie die Batcharbeitslast für die Verwendung eines externen selbstverwalteten Hive Metastore.
- Sie verwenden einen Persistent History Server (PHS). Die 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 der Anfrage:
{ "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 for Spark-Arbeitslasten verbrauchen Data Compute Unit (DCU) und Shuffle-Speicherressourcen. Ein Beispiel, das Dataproc UsageMetrics ausgibt, um den Verbrauch und die Kosten von Arbeitslastressourcen zu schätzen, finden Sie unter Dataproc Serverless-Preise .
Nächste Schritte
Hier erfahren Sie mehr über: