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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Dataproc API aktivieren.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
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 PI-Wert berechnet:
- Batch-Informationen:
- Batch-ID: Geben Sie eine ID für Ihre Batcharbeitslast an. Dieser Wert muss aus 4 bis 63 Kleinbuchstaben bestehen. 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 Ihre Batcharbeitslast an. Dieser Wert muss aus 4 bis 63 Kleinbuchstaben bestehen. Gültige Zeichen sind
- Container:
- Batchtyp: Spark.
- Laufzeitversion: Die Standardlaufzeitversion ist 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 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 zum Ausführen Ihrer Arbeitslast verwendet werden soll. Wenn Sie kein Dienstkonto angeben, wird die Arbeitslast unter dem Compute Engine-Standarddienstkonto ausgeführt.
- Netzwerkkonfiguration: Das VPC-Subnetzwerk, das Dataproc Serverless für Spark-Arbeitslasten ausführt, 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. In der Liste der Subnetzwerke werden Subnetze im ausgewählten Netzwerk angezeigt, für die der privater Google-Zugriff aktiviert ist.
- Attribute: Geben Sie
Key
(Attributname) undValue
der unterstützten Spark-Attribute ein, die für Ihre Spark-Batcharbeitslast festgelegt werden sollen. Hinweis: Im Gegensatz zu Clusterattributen von Dataproc in Compute Engine enthalten Dataproc Serverless for Spark-Arbeitslastattribute keinspark:
-Präfix. - 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
Führen Sie den folgenden gcloud CLI-Befehl gcloud dataproc batches submit spark
lokal in einem Terminalfenster oder in Cloud Shell aus, um eine Spark-Batcharbeitslast zum Berechnen des ungefähren Werts von pi
zu senden.
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 die Arbeitslast ausgeführt wird.
- Subnetzwerk: Das VPC-Subnetzwerk, das Dataproc Serverless for Spark-Arbeitslasten ausführt, muss für 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, 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 (Arbeitslasteingabeargumente werden nach „--“ 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 die Arbeitslastabhängigkeiten hochlädt. Das URI-Präfixgs://
des Buckets ist nicht erforderlich. Sie können den Bucket-Pfad oder Bucket-Namen angeben, beispielsweise "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 Batcharbeitslast auf Dateien auf Ihrem lokalen Computer verweist.--ttl
: Sie können das Flag--ttl
hinzufügen, um die Dauer der Batchlebensdauer anzugeben. Wenn die Arbeitslast diesen Zeitraum überschreitet, wird sie bedingungslos beendet, ohne auf den Abschluss laufender Arbeiten 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 mit 1.1 oder 2.0: Wenn
--ttl
für eine Batcharbeitslast mit einer Laufzeit von 1.1 oder 2.0 nicht angegeben ist, kann die Arbeitslast ausgeführt werden, bis sie auf natürliche Weise beendet wird (oder dauerhaft ausgeführt wird, wenn sie nicht beendet wird). - Laufzeit-Batches ab 2.1:Wenn
--ttl
für eine Batcharbeitslast mit Laufzeit 2.1 oder höher nicht angegeben ist, wird standardmäßig4h
verwendet.
- Laufzeit-Batches mit 1.1 oder 2.0: Wenn
- Weitere Optionen: Sie können Befehls-Flags
gcloud dataproc batches submit
hinzufügen, um andere Arbeitslastoptionen und Spark-Attribute anzugeben.- Hive Metastore: Mit dem folgenden Befehl wird eine Batcharbeitslast so konfiguriert, dass sie einen externen selbstverwalteten Hive-Metastore mithilfe einer Spark-Standardkonfiguration verwendet.
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 einzelnen Knoten erstellt. Der PHS muss sich in der Region befinden, in der Sie Batcharbeitslasten ausführen. Außerdem muss der Cloud Storage-bucket-name 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 in einem Dataproc-Cluster mit einem einzelnen Knoten erstellt. Der PHS muss sich in der Region befinden, in der Sie Batcharbeitslasten ausführen. Außerdem muss der Cloud Storage-bucket-name vorhanden sein.
- 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 so konfiguriert, dass sie einen externen selbstverwalteten Hive-Metastore mithilfe einer Spark-Standardkonfiguration verwendet.
API
In diesem Abschnitt wird gezeigt, wie Sie eine Batcharbeitslast erstellen, um den ungefähren Wert von pi
mit 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 Docker-Images an:
{hostname}/{project-id}/{image}:{tag}
, zum Beispiel "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 für Spark-Arbeitslasten ausführt, muss für privaten Google-Zugriff
aktiviert sein und die anderen Anforderungen erfüllen, die unter
Dataproc Serverless for Spark-Netzwerkkonfiguration erfüllt sind.
Wenn das Subnetz des Netzwerks
default
für die 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
- Geben Sie im Feld
ExecutionConfig.subnetworkUri
ein Subnetz an, 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. DiesparkBatch.args
„1000“ wird an die SparkPi-Arbeitslast übergeben und gibt 1.000 Iterationen der PI-Schätzlogik an.Spark properties
: Sie können im Feld RuntimeConfig.properties unterstützte Spark-Attribute eingeben, die die Spark-Batcharbeitslast verwenden soll.--ttl
: Sie können das FeldEnvironmentConfig.ttl
verwenden, um die Dauer der Batchlebensdauer anzugeben. Wenn die Arbeitslast diesen Zeitraum überschreitet, wird sie bedingungslos beendet, ohne auf den Abschluss laufender Arbeiten zu warten. Geben Sie die Dauer als JSON-Darstellung für Duration an. Der Mindestwert beträgt 10 Minuten und der Höchstwert 14 Tage.- Laufzeit-Batches mit 1.1 oder 2.0: Wenn
--ttl
für eine Batcharbeitslast mit einer Laufzeit von 1.1 oder 2.0 nicht angegeben ist, kann die Arbeitslast ausgeführt werden, bis sie auf natürliche Weise beendet wird (oder dauerhaft ausgeführt wird, wenn sie nicht beendet wird). - Laufzeit-Batches ab 2.1: Wenn
--ttl
für eine Batcharbeitslast mit Laufzeit 2.1 oder höher nicht angegeben ist, wird standardmäßig 4 Stunden verwendet.
- Laufzeit-Batches mit 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 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 für Spark-Arbeitslasten nutzt Data Compute Unit (DCU) und Shuffle-Speicherressourcen. Ein Beispiel, wie 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: