Scopri come utilizzare Dataproc Serverless per inviare un carico di lavoro batch su un'infrastruttura di calcolo gestita, con scalabilità automatica delle risorse secondo necessità.
Prima di iniziare
- Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
Nella console di Google Cloud Console, nella pagina del selettore dei progetti, seleziona o crea un progetto Google Cloud.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Attiva l'API Dataproc.
-
Nella console di Google Cloud Console, nella pagina del selettore dei progetti, seleziona o crea un progetto Google Cloud.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Attiva l'API Dataproc.
Invia un carico di lavoro batch Spark
Console
Nella console Google Cloud, vai a Dataproc Batch. Fai clic su Crea per aprire la pagina Crea batch.
Seleziona e compila i seguenti campi per inviare un carico di lavoro batch Spark che calcola il valore approssimativo di pi greco:
- Informazioni sul batch
- ID batch: specifica un ID per il tuo carico di lavoro batch. Questo valore deve contenere da 4 a 63 caratteri. I caratteri validi sono /[a-z][0-9]-/.
- Regione: seleziona una regione per eseguire il carico di lavoro.
- Container
- Tipo di batch: Spark
- Versione runtime: è selezionata la versione del runtime predefinita. Facoltativamente, puoi specificare una versione non predefinita del runtime Dataproc Serverless.
- Classe principale:
org.apache.spark.examples.SparkPi
- JAR. L'ambiente di esecuzione di Spark include il seguente file:
file:///usr/lib/spark/examples/jars/spark-examples.jar
- Argomenti: 1000
- Configurazione dell'esecuzione Puoi specificare un account di servizio da utilizzare per eseguire il carico di lavoro. Se non specifichi un account di servizio, il carico di lavoro viene eseguito nell'account di servizio predefinito di Compute Engine.
- Configurazione di rete La subnet VPC che esegue carichi di lavoro Spark serverless deve soddisfare i requisiti elencati nella Configurazione di rete di Dataproc Serverless per Spark. L'elenco di subnet mostra le subnet nella rete selezionata abilitate per l'accesso privato Google.
- Proprietà: inserisci la chiave (nome proprietà) e il valore di qualsiasi proprietà Spark supportata che vuoi utilizzare per il carico di lavoro batch Spark. Nota: a differenza delle proprietà cluster di Dataproc su Compute Engine, le proprietà dei carichi di lavoro Dataproc serverless per Spark non includono un prefisso "spark:".
- Altre opzioni
- Configura il carico di lavoro batch per utilizzare un Hive Metastore esterno autogestito.
- Utilizza un server di cronologia Spark.
- Informazioni sul batch
Fai clic su INVIA per eseguire il carico di lavoro batch Spark.
gcloud
Per inviare un carico di lavoro batch Spark al fine di calcolare il valore approssimativo di pi
, esegui il seguente comando gcloud dataproc batches send spark gcloud CLI'interfaccia a riga di comando gcloud localmente 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:
- Subnet:
la subnet VPC che esegue carichi di lavoro Spark serverless deve
soddisfare i requisiti elencati in
Configurazione di rete Dataproc Serverless per Spark. Se la subnet di rete
default
per la regione specificata nel comandogcloud dataproc batches submit
non è abilitata per l'accesso privato Google, devi eseguire una delle seguenti operazioni:- Abilita la subnet di rete predefinita per la regione per l'accesso privato Google oppure
- Utilizza il flag
--subnet=[SUBNET_URI]
nel comando 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.
--jars
: il file JAR di esempio è preinstallato nell'ambiente di esecuzione Spark e l'argomento del comando1000
passato al carico di lavoro SparkPi specifica 1000 iterazioni della logica di stima del pi greco (gli argomenti di input del carico di lavoro sono inclusi dopo "-- ").--properties
: puoi aggiungere il flag--properties
per inserire eventuali proprietà Spark supportate che vuoi che il carico di lavoro batch Spark utilizzi.--deps-bucket
: puoi aggiungere questo flag per specificare un bucket Cloud Storage in cui Dataproc Serverless per Spark caricherà le dipendenze dei carichi di lavoro. Il prefisso URIgs://
del bucket non è obbligatorio; puoi specificare solo il nome/il percorso del bucket, ad esempio "mybucketname". Eccezione: se il carico di lavoro batch fa riferimento a file sulla tua macchina locale, il flag --deps-bucket è obbligatorio; Dataproc Serverless per Spark caricherà i file locali in una cartella/dependencies
del bucket prima di eseguire il carico di lavoro batch.--ttl
: puoi aggiungere il flag--ttl
per specificare la durata della durata del batch. Quando il carico di lavoro supera questa durata, verrà 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
--ttl
non è specificato per un carico di lavoro batch di runtime 1.1 o 2.0, il carico di lavoro può essere eseguito finché non si chiude naturalmente (oppure viene eseguito all'infinito se non viene chiuso). - Batch di runtime 2.1 e versioni successive: se
--ttl
non è specificato 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
- Altre opzioni:
- Puoi aggiungere altri flag di comando facoltativi. Ad esempio, il seguente comando configura il carico di lavoro batch in modo che utilizzi un Hive Metastore autogestito utilizzando una configurazione Spark standard:
gcloud dataproc batches submit \ --properties=spark.sql.catalogImplementation=hive,spark.hive.metastore.uris=METASTORE_URI,spark.hive.metastore.warehouse.dir=WAREHOUSE_DIR> \ other args ...
Consultagcloud dataproc batches submit
per i flag di comando supportati. - Utilizza un server di cronologia permanente.
- Crea un server di cronologia permanente (PHS) su un cluster Dataproc a nodo singolo. Nota: il bucket-name di Cloud Storage deve
esistere.
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
- Crea un server di cronologia permanente (PHS) su un cluster Dataproc a nodo singolo. Nota: il bucket-name di Cloud Storage deve
esistere.
- Specifica una versione non predefinita del runtime Dataproc Serverless.
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
- Puoi aggiungere altri flag di comando facoltativi. Ad esempio, il seguente comando configura il carico di lavoro batch in modo che utilizzi un Hive Metastore autogestito utilizzando una configurazione Spark standard:
API
Questa sezione mostra come creare un carico di lavoro batch per calcolare il valore approssimativo di pi
utilizzando l'API Dataproc Serverless per Spark batches.create.
Prima di utilizzare qualsiasi dato della richiesta, effettua le seguenti sostituzioni:
- project-id: ID progetto Google Cloud
- region: regione Note:
- Custom-container-image: specifica l'immagine del container 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. - Subnet:
se la subnet della rete
default
per la specifica region non è abilitata per l'accesso privato Google, devi eseguire una delle seguenti operazioni:- Abilita la subnet della rete predefinita per region per l'accesso privato Google oppure
- Utilizza il campo
ExecutionConfig.subnetworkUri
per specificare una subnet per 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 di Spark. Il valore "1000"sparkBatch.args
viene passato al carico di lavoro SparkPi e specifica 1000 iterazioni della logica di stima del pi greco.Spark properties
: puoi utilizzare il campo RuntimeConfig.properties per inserire le proprietà Spark supportate che vuoi che il carico di lavoro batch Spark utilizzi.--ttl
: puoi utilizzare il campoEnvironmentConfig.ttl
per specificare la durata della durata del batch. Quando il carico di lavoro supera questa durata, verrà 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
--ttl
non è specificato per un carico di lavoro batch di runtime 1.1 o 2.0, il carico di lavoro può essere eseguito finché non si chiude naturalmente (oppure viene eseguito all'infinito se non viene chiuso). - Batch di runtime 2.1 e versioni successive: se
--ttl
non è specificato per un carico di lavoro batch di runtime 2.1 o versioni successive, il valore predefinito è di 4 ore.
- Batch di runtime 1.1 o 2.0:se
- Altre opzioni:
- Configura il carico di lavoro batch per utilizzare un Hive Metastore esterno autogestito.
- Utilizza un server di cronologia Spark.
- Utilizza il campo
RuntimeConfig.version
come parte della richiestabatches.create
per specificare una versione non predefinita del runtime Dataproc Serverless
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 carico di lavoro
I carichi di lavoro Dataproc Serverless per Spark utilizzano Data Compute Unit (DCU) e utilizzano risorse di archiviazione shuffling. Per un esempio di output di UsageMetrics di Dataproc per stimare il consumo e i costi delle risorse dei carichi di lavoro, consulta Prezzi di Dataproc Serverless .
Passaggi successivi
Scopri di più su: