Scopri come utilizzare Dataproc Serverless per inviare un carico di lavoro batch su un'infrastruttura di calcolo gestita da Dataproc che scala le risorse in base alle esigenze.
Prima di iniziare
- 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.
Invia un carico di lavoro batch Spark
Puoi utilizzare la console Google Cloud, Google Cloud CLI o l'API Dataproc Serverless per creare e inviare un carico di lavoro batch Dataproc Serverless per Spark.
Console
Nella console Google Cloud, vai a Dataproc Batches.
Fai clic su Crea.
Invia un carico di lavoro batch Spark che calcola il valore approssimativo di pi greco selezionando e compilando i seguenti campi:
- Informazioni sul batch:
- ID batch: specifica un ID per il carico di lavoro batch. Questo valore deve contenere da 4 a 63 caratteri in minuscolo. I caratteri validi sono
/[a-z][0-9]-/
. - Regione: seleziona una regione in cui verrà eseguito il tuo workload.
- ID batch: specifica un ID per il carico di lavoro batch. Questo valore deve contenere da 4 a 63 caratteri in minuscolo. I caratteri validi sono
- Contenitore:
- Tipo di batch: Spark.
- Versione del runtime: è selezionata la versione del runtime predefinita. Se vuoi, puoi specificare una versione del runtime Dataproc Serverless non predefinita.
- Classe principale:
org.apache.spark.examples.SparkPi
- File JAR (questo file è preinstallato nell'ambiente di esecuzione Spark di Dataproc Serverless).
file:///usr/lib/spark/examples/jars/spark-examples.jar
- Argomenti: 1000.
- Configurazione esecuzione:puoi specificare un account di servizio da utilizzare per eseguire il tuo carico di lavoro. Se non specifichi un account di servizio, il carico di lavoro viene eseguito con l'account di servizio predefinito di Compute Engine. Il tuo account di servizio deve avere il ruolo Dataproc Worker.
- Configurazione di rete: la subnet VPC che esegue i carichi di lavoro Dataproc Serverless per Spark deve essere abilitata per l'accesso privato Google e soddisfare gli altri requisiti elencati in Configurazione di rete di Dataproc Serverless per Spark. L'elenco delle subnet mostra le subnet della rete selezionata per le quali è attivato l'accesso privato Google.
- Proprietà: inserisci
Key
(nome della proprietà) eValue
delle proprietà Spark supportate da impostare sul carico di lavoro batch Spark. Nota: a differenza delle proprietà dei cluster di Dataproc su Compute Engine, le proprietà del carico di lavoro di Dataproc Serverless per Spark non includono un prefissospark:
. - Altre opzioni:
- Puoi configurare il carico di lavoro batch in modo da utilizzare un metastore Hive autogestito esterno.
- Puoi utilizzare un server di cronologia permanente (PHS). Il PHS deve trovarsi nella regione in cui esegui i workload batch.
- Informazioni sul batch:
Fai clic su Invia per eseguire il carico di lavoro batch Spark.
gcloud
Per inviare un carico di lavoro batch di Spark per calcolare il valore approssimativo di pi
, esegui il seguente comando gcloud CLI gcloud dataproc batches submit spark
in locale in una finestra del terminale o 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
Note:
- REGION: Specifica la regione in cui verrà eseguito il tuo workload.
- Subnet:
la subnet VPC che esegue i carichi di lavoro Dataproc Serverless per Spark deve essere abilitata per l'accesso privato Google e soddisfare gli altri requisiti elencati in Configurazione di Dataproc Serverless per la rete Spark.
Se la subnet della rete
default
per la regione specificata nel comandogcloud dataproc batches submit
non è abilitata per Accesso privato Google, devi eseguire una delle seguenti operazioni:- Abilita la subnet della rete predefinita per la regione per l'accesso privato Google oppure
- Utilizza il
--subnet=SUBNET_URI
flag per specificare una subnet in cui è abilitato l'accesso privato Google. Puoi eseguire il comandogcloud compute networks describe <var>NETWORK_NAME</var>
per elencare gli URI delle subnet in una rete.
--jars
: il file JAR di esempio è preinstallato nell'ambiente di esecuzione Spark, l'argomento del comando1000
passato al carico di lavoro SparkPi specifica 1000 iterazioni della logica di stima del pi (gli argomenti di input del carico di lavoro sono inclusi dopo "-- ").--properties
: puoi aggiungere questo flag per inserire proprietà Spark supportate da utilizzare per il carico di lavoro batch Spark.--deps-bucket
: puoi aggiungere questo flag per specificare un bucket Cloud Storage in cui Dataproc Serverless carica le dipendenze del carico di lavoro. Il prefisso URIgs://
del bucket non è obbligatorio; puoi specificare il percorso o il nome del bucket, ad esempio "mybucketname". Prima di eseguire il carico di lavoro batch, Dataproc Serverless per Spark carica i file locali in una cartella/dependencies
nel bucket. Nota: questo flag è obbligatorio se il tuo workload batch fa riferimento a file sul tuo computer locale.--ttl
: puoi aggiungere il--ttl
flag per specificare la durata del lifetime del batch. Quando il carico di lavoro supera questa durata, viene terminato incondizionatamente senza attendere il completamento del lavoro in corso. Specifica la durata utilizzando un suffissos
,m
,h
od
(secondi, minuti, ore o giorni). Il valore minimo è 10 minuti (10m
) e il valore massimo è 14 giorni (14d
).- Batch di runtime 1.1 o 2.0: se non viene specificato
--ttl
per un carico di lavoro batch di runtime 1.1 o 2.0, il carico di lavoro può essere eseguito fino all'uscita naturale (o per sempre se non esce). - Esecuzioni batch di runtime 2.1 e versioni successive: se non viene specificato
--ttl
per un carico di lavoro batch di runtime 2.1 o versioni successive, il valore predefinito è4h
.
- Batch di runtime 1.1 o 2.0: se non viene specificato
--service-account
: puoi specificare un account di servizio da utilizzare per eseguire il tuo carico di lavoro. Se non specifichi un account di servizio, il carico di lavoro viene eseguito con l'account di servizio predefinito di Compute Engine. Il tuo account di servizio deve avere il ruolo Dataproc Worker.- Altre opzioni: puoi aggiungere parametri
gcloud dataproc batches submit spark
per specificare altre opzioni di carico di lavoro e proprietà Spark.- Metastore Hive: il seguente comando configura un carico di lavoro batch per l'utilizzo di un metastore Hive autonomo esterno utilizzando una configurazione Spark standard.
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 ...
- Server di cronologia permanente:
- Il seguente comando crea un PHS su un cluster Dataproc con un solo nodo. La PHS deve trovarsi nella regione in cui esegui i carichi di lavoro batch e deve essere presente il bucket-name Cloud Storage.
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
- Invia un carico di lavoro batch specificando il server di cronologia permanente in esecuzione.
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
- Il seguente comando crea un PHS su un cluster Dataproc con un solo nodo. La PHS deve trovarsi nella regione in cui esegui i carichi di lavoro batch e deve essere presente il bucket-name Cloud Storage.
- Versione del runtime:
utilizza il flag
--version
per specificare la versione del runtime Dataproc Serverless per il carico di lavoro.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
- Metastore Hive: il seguente comando configura un carico di lavoro batch per l'utilizzo di un metastore Hive autonomo esterno utilizzando una configurazione Spark standard.
API
Questa sezione mostra come creare un carico di lavoro batch per calcolare il valore approssimativo di pi
utilizzando Dataproc Serverless per Spark batches.create
.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: un ID progetto Google Cloud.
- region: una regione Compute Engine in cui Dataproc Serverless eseguirà il carico di lavoro. Note:
RuntimeConfig.containerImage
: Puoi specificare un'immagine contenitore personalizzata utilizzando il formato di denominazione delle immagini Docker:{hostname}/{project-id}/{image}:{tag}
, ad esempio "gcr.io/my-project-id/my-image:1.0.1". Nota: devi ospitare il container personalizzato su Container Registry.ExecutionConfig.subnetworkUri
: la sottorete VPC che esegue i carichi di lavoro Dataproc Serverless per Spark deve essere abilitata per Accesso privato Google e deve soddisfare gli altri requisiti elencati in Configurazione di rete di Dataproc Serverless per Spark. Se la subnet della retedefault
per la regione specificata non è abilitata per Accesso privato Google, devi eseguire una delle seguenti operazioni:- Abilita la subnet della rete predefinita per la regione per l'accesso privato Google oppure
- Utilizza il
ExecutionConfig.subnetworkUri
campo per specificare una subnet in cui è abilitato l'accesso privato Google. Puoi eseguire il comandogcloud compute networks describe [NETWORK_NAME]
per elencare gli URI delle subnet in una rete.
sparkBatch.jarFileUris
: il file jar di esempio è preinstallato nell'ambiente di esecuzione Spark. Il valore "1000"sparkBatch.args
viene passato al carico di lavoro SparkPi e specifica 1000 iterazioni della logica di stima di pi greco.RuntimeConfig.properties
: puoi utilizzare questo campo per inserire le proprietà Spark supportate da utilizzare per il tuo carico di lavoro batch di Spark.ExecutionConfig.serviceAccount
: puoi specificare un account di servizio da utilizzare per eseguire il tuo carico di lavoro. Se non specifichi un account di servizio, il carico di lavoro viene eseguito con l'account di servizio predefinito di Compute Engine. Il tuo account di servizio deve avere il ruolo Dataproc Worker.EnvironmentConfig.ttl
: puoi utilizzare questo campo per specificare la durata del lifetime del batch. Quando il carico di lavoro supera questa durata, viene terminato incondizionatamente senza attendere il completamento del lavoro in corso. Specifica la durata come rappresentazione JSON per Duration. Il valore minimo è 10 minuti e il valore massimo è 14 giorni.- Batch di runtime 1.1 o 2.0: se non viene specificato
--ttl
per un carico di lavoro batch di runtime 1.1 o 2.0, il carico di lavoro può essere eseguito fino all'uscita naturale (o per sempre se non esce). - Esecuzioni batch di runtime 2.1 e versioni successive: se non viene specificato
--ttl
per un carico di lavoro di esecuzione batch di runtime 2.1 o versioni successive, il valore predefinito è 4 ore.
- Batch di runtime 1.1 o 2.0: se non viene specificato
- Altre opzioni:
- Configura il carico di lavoro batch in modo da utilizzare un Metastore Hive autogestito esterno.
- Utilizzare un server di cronologia permanente (PHS). Il PHS deve trovarsi nella regione in cui esegui i workload batch.
- Utilizza il campo
RuntimeConfig.version
all'interno della richiestabatches.create
per specificare una versione del runtime Dataproc Serverless non predefinita .
Metodo HTTP e URL:
POST https://dataproc.googleapis.com/v1/projects/project-id/locations/region/batches
Corpo JSON della richiesta:
{ "sparkBatch":{ "args":[ "1000" ], "jarFileUris":[ "file:///usr/lib/spark/examples/jars/spark-examples.jar" ], "mainClass":"org.apache.spark.examples.SparkPi" } }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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" }
Stima i costi del workload
I carichi di lavoro Dataproc Serverless per Spark consumano unità di calcolo dei dati (DCU) e risorse di archiviazione per lo shuffling. Per un esempio che genera UsageMetrics di Dataproc per stimare i costi e il consumo delle risorse dei carichi di lavoro, consulta Prezzi di Dataproc Serverless.
Passaggi successivi
Scopri di più su: