Hier erfahren Sie, wie Sie mit Serverless for Apache Spark eine Batcharbeitslast in einer von Dataproc verwalteten Computing-Infrastruktur senden, 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.
-
Verify 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.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Dataproc API.
Rufen Sie in der Google Cloud -Konsole Dataproc-Batches auf.
Klicken Sie auf Erstellen.
Senden Sie eine Spark-Batcharbeitslast, die den ungefähren Wert von Pi berechnet, indem Sie die folgenden Felder auswählen und ausfüllen:
- Batchinformationen:
- Batch-ID: Geben Sie eine ID für Ihre Batcharbeitslast an. Dieser Wert muss 4–63 Kleinbuchstaben umfassen. 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 4–63 Kleinbuchstaben umfassen. Gültige Zeichen sind
- Container:
- Batchtyp: Spark
- Laufzeitversion: Die Standardlaufzeitversion ist ausgewählt. Optional können Sie eine andere als die Standard-Laufzeitversion von Serverless for Apache Spark angeben.
- Hauptklasse:
org.apache.spark.examples.SparkPi
- JAR-Dateien (diese Datei ist in der Serverless for Apache Spark-Spark-Ausführungsumgebung vorinstalliert).
file:///usr/lib/spark/examples/jars/spark-examples.jar
- Argumente: 1000.
- 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. Ihr Dienstkonto muss die Dataproc-Worker-Rolle haben.
- Netzwerkkonfiguration:Wählen Sie ein Subnetzwerk in der Sitzungsregion aus. Serverless für Apache Spark aktiviert den privaten Google-Zugriff für das angegebene Subnetz. Informationen zu den Anforderungen an die Netzwerkverbindung finden Sie unter Google Cloud Serverless for Apache Spark-Netzwerkkonfiguration.
- Attribute:Geben Sie den
Key
(Attributname) undValue
der unterstützten Spark-Attribute ein, die für Ihre Spark-Batcharbeitslast festgelegt werden sollen. Hinweis: Im Gegensatz zu Clusterattributen für Dataproc in Compute Engine enthalten Arbeitslastattribute für Serverless for Apache Spark 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.
- Batchinformationen:
Klicken Sie auf Senden, um die Spark-Batcharbeitslast auszuführen.
- REGION: Geben Sie die Region an, in der Ihre Arbeitslast ausgeführt wird.
- Weitere Optionen:Sie können
gcloud dataproc batches submit spark
-Flags hinzufügen, um andere Arbeitslastoptionen und Spark-Attribute anzugeben.--version
: Sie können eine nicht standardmäßige Laufzeitversion von Serverless for Apache Spark angeben.--jars
: Die Beispiel-JAR-Datei ist in der Spark-Ausführungsumgebung vorinstalliert. Das Befehlsargument1000
, das an den SparkPi-Arbeitslast übergeben wird, gibt 1.000 Wiederholungen der Logik zur Schätzung von Pi an. Die Eingabeargumente für die Arbeitslast werden nach „-- “ angegeben.--subnet
: Mit diesem Flag können Sie den Namen eines Subnetzes in der Sitzungsregion angeben. Wenn Sie kein Subnetz angeben, wählt Serverless for Apache Spark das Subnetzdefault
in der Sitzungsregion aus. Serverless für Apache Spark aktiviert den privaten Google-Zugriff (Private Google Access, PGA) für das Subnetz. Informationen zu den Anforderungen an die Netzwerkverbindung finden Sie unter Google Cloud Serverless for Apache Spark-Netzwerkkonfiguration.--properties
: Mit diesem Flag können Sie unterstützte Spark-Attribute für Ihre Spark-Batcharbeitslast hinzufügen.--deps-bucket
: Mit diesem Flag können Sie einen Cloud Storage-Bucket angeben, in den Serverless for Apache Spark Arbeitslastabhängigkeiten hochlädt. Dasgs://
-URI-Präfix des Buckets ist nicht erforderlich. Sie können den Bucket-Pfad oder den Bucket-Namen angeben. Bei Serverless for Apache Spark werden die lokalen Dateien in einen/dependencies
-Ordner im Bucket hochgeladen, 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 Batch-Lebensdauer anzugeben. Wenn die Arbeitslast diese Dauer überschreitet, wird sie bedingungslos beendet, ohne dass laufende Arbeiten abgeschlossen werden. 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
).- 1.1- oder 2.0-Laufzeit-Batches:Wenn
--ttl
für eine 1.1- oder 2.0-Laufzeit-Batcharbeitslast nicht angegeben ist, darf die Arbeitslast ausgeführt werden, bis sie auf natürliche Weise beendet wird (oder für immer, wenn sie nicht beendet wird). - Laufzeit-Batchjobs ab Version 2.1:Wenn
--ttl
für einen Batchjob mit Laufzeitversion 2.1 oder höher nicht angegeben ist, wird standardmäßig4h
verwendet.
- 1.1- oder 2.0-Laufzeit-Batches:Wenn
--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. Ihr Dienstkonto muss die Dataproc-Worker-Rolle haben.- Hive-Metastore: Mit dem folgenden Befehl wird eine Batcharbeitslast für die Verwendung eines externen selbstverwalteten Hive-Metastore 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 in einem Dataproc-Cluster mit einem einzelnen Knoten erstellt. Der PHS muss sich in der Region befinden, in der Sie Batcharbeitslasten 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 und geben Sie den ausgeführten 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 einzelnen Knoten erstellt. Der PHS muss sich in der Region befinden, in der Sie Batcharbeitslasten ausführen, und der Cloud Storage-bucket-name muss vorhanden sein.
- Laufzeitversion:
Verwenden Sie das Flag
--version
, um die Laufzeitversion von Serverless for Apache Spark 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
- project-id: Eine Google Cloud -Projekt-ID.
- region: Eine Compute Engine-Region, in der Google Cloud Serverless für Apache Spark die Arbeitslast ausführt.
- PROJECT_ID: Ihre Google Cloud -Projekt-ID Projekt-IDs werden im Bereich Projektinformationen im Dashboard der Google Cloud Console aufgeführt.
- REGION: Die Region der Sitzung.
Spark-Batcharbeitslast senden
Sie können die Google Cloud Console, die Google Cloud CLI oder die Serverless for Apache Spark API verwenden, um einen Serverless for Apache Spark-Batcharbeitslast zu erstellen und zu senden.
Console
gcloud
Wenn Sie einen Spark-Batcharbeitslast senden 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
Ersetzen Sie Folgendes:
API
In diesem Abschnitt wird gezeigt, wie Sie einen Batch-Arbeitslast erstellen, um den ungefähren Wert von pi
mithilfe von Serverless for Apache Spark batches.create
zu berechnen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
Hinweise:
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 eine JSON-Antwort ähnlich wie diese 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":{ "version":"2.3", "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
Für Serverless for Apache Spark-Arbeitslasten werden Data Compute Unit- (DCU-) und Shuffle-Speicherressourcen verbraucht. Ein Beispiel für die Ausgabe von Dataproc-UsageMetrics zur Schätzung des Ressourcenverbrauchs und der Kosten von Arbeitslasten finden Sie unter Serverless for Apache Spark – Preise.
Nächste Schritte
Hier erfahren Sie mehr über: