Scopri come utilizzare Dataproc Serverless per inviare un carico di lavoro batch su un'infrastruttura di calcolo gestita da Dataproc che scala le risorse secondo le esigenze.
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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Attiva l'API Dataproc.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
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 ai batch Dataproc. Fai clic su Crea per aprire la pagina Crea batch.
Seleziona e compila i seguenti campi della pagina 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 carico di lavoro batch. Questo valore deve contenere da 4 a 63 caratteri minuscoli. I caratteri validi sono
/[a-z][0-9]-/
. - Regione: seleziona una regione in cui verrà eseguito il carico di lavoro.
- ID batch: specifica un ID per il carico di lavoro batch. Questo valore deve contenere da 4 a 63 caratteri minuscoli. I caratteri validi sono
- Contenitore:
- Tipo di batch: Spark.
- Versione runtime: è selezionata la versione del runtime predefinita. Facoltativamente, puoi specificare una versione di runtime Dataproc serverless non predefinita.
- Classe principale:
org.apache.spark.examples.SparkPi
- File jar (questo file è preinstallato nell'ambiente di esecuzione Spark serverless di Dataproc).
file:///usr/lib/spark/examples/jars/spark-examples.jar
- Argomenti: 1000.
- Configurazione 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 in base all'account di servizio predefinito di Compute Engine.
- Configurazione di rete: la subnet VPC che esegue 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 Dataproc Serverless per Spark. L'elenco delle subnet mostra le subnet nella rete selezionata abilitate per l'accesso privato Google.
- Proprietà: inserisci
Key
(nome proprietà) eValue
delle proprietà Spark supportate da impostare sul 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 prefissospark:
. - Altre opzioni:
- Puoi configurare il carico di lavoro batch in modo che utilizzi un metastore Hive esterno autogestito .
- Puoi utilizzare un server di cronologia permanente (PHS). Il PHS deve trovarsi nella regione in cui vengono eseguiti i carichi di lavoro batch.
- 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 CLI gcloud dataproc batches submit spark
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:
- REGION: Specifica la regione dove verrà eseguito il carico di lavoro.
- Subnet: la subnet VPC che esegue Dataproc Serverless per i carichi di lavoro Spark deve essere abilitata per l'accesso privato Google e soddisfare gli altri requisiti elencati in Configurazione di rete Dataproc Serverless per Spark.
Se la subnet della 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 della 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. L'argomento del comando1000
passato al carico di lavoro SparkPi specifica 1000 iterazioni della logica di stima pi (gli argomenti di input del carico di lavoro sono inclusi dopo "--").--properties
: puoi aggiungere il flag--properties
per inserire le proprietà Spark supportate che vuoi utilizzare per il carico di lavoro batch Spark.--deps-bucket
: puoi aggiungere questo flag per specificare un bucket Cloud Storage in cui Dataproc Serverless caricherà le dipendenze dei carichi di lavoro. Il prefisso URIgs://
del bucket non è obbligatorio; puoi specificare il percorso o il nome del bucket, ad esempio "mybucketname". Dataproc Serverless per Spark carica i file locali in una cartella/dependencies
del bucket prima di eseguire il carico di lavoro batch. Nota: questo flag è obbligatorio se il carico di lavoro batch fa riferimento ai file sulla macchina locale.--ttl
: puoi aggiungere il flag--ttl
per specificare la durata della durata del batch. Quando il carico di lavoro supera questa durata, viene arrestato in modo incondizionato senza dover 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
), mentre 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, può essere eseguito fino a quando non si chiude naturalmente (o 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 flag di comando
gcloud dataproc batches submit
per specificare altre opzioni dei carichi di lavoro e proprietà Spark.- Hive Metastore: il comando seguente configura un carico di lavoro batch per l'utilizzo di un
metastore Hive autogestito
mediante 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 ...
- Server di cronologia permanente:
- Il comando seguente crea un PHS su un cluster Dataproc a nodo singolo. Il PHS deve trovarsi nella regione in cui vengono eseguiti i carichi di lavoro batch
e deve esistere l'bucket-name di 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 comando seguente crea un PHS su un cluster Dataproc a nodo singolo. Il PHS deve trovarsi nella regione in cui vengono eseguiti i carichi di lavoro batch
e deve esistere l'bucket-name di Cloud Storage.
- Versione di runtime:
utilizza il flag
--version
per specificare la versione di runtime di 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
- Hive Metastore: il comando seguente configura un carico di lavoro batch per l'utilizzo di un
metastore Hive autogestito
mediante 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, effettua le seguenti sostituzioni:
- project-id: un ID progetto Google Cloud.
- region: una regione di Compute Engine in cui Dataproc Serverless eseguirà il carico di lavoro. Note:
- Custom-container-image: specifica l'immagine del container personalizzato utilizzando il
formato di denominazione dell'immagine 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: la subnet VPC che esegue Dataproc Serverless per i carichi di lavoro Spark deve essere abilitata per l'accesso privato Google
e soddisfare gli altri requisiti elencati in
Configurazione della rete Dataproc Serverless per Spark.
Se la subnet della rete
default
per la regione specificata non è abilitata per l'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 campo
ExecutionConfig.subnetworkUri
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 pi.Spark properties
: puoi utilizzare il campo RuntimeConfig.properties per inserire le proprietà Spark supportate che vuoi che vengano utilizzate dal carico di lavoro batch Spark.--ttl
: puoi utilizzare il campoEnvironmentConfig.ttl
per specificare la durata della durata del batch. Quando il carico di lavoro supera questa durata, viene arrestato in modo incondizionato senza dover attendere il completamento del lavoro in corso. Specifica la durata come rappresentazione JSON per Duration. Il valore minimo è 10 minuti, mentre 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, può essere eseguito fino a quando non si chiude naturalmente (o 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 sarà 4 ore.
- Batch di runtime 1.1 o 2.0: se
- Altre opzioni:
- Configura il carico di lavoro batch in modo da utilizzare un Hive Metastoreautogestito esterno.
- Utilizza un server di cronologia permanente (PHS). Il PHS deve trovarsi nella regione in cui vengono eseguiti i carichi di lavoro batch.
- Utilizza il campo
RuntimeConfig.version
come parte della richiestabatches.create
per specificare una versione di 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 delle seguenti 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 dei carichi di lavoro
Dataproc Serverless per carichi di lavoro Spark utilizza Data Compute Unit (DCU) e shuffling delle risorse di archiviazione. Per un esempio che restituisce UsageMetrics di Dataproc per stimare il consumo e i costi delle risorse del carico di lavoro, consulta Prezzi di Dataproc Serverless .
Passaggi successivi
Scopri di più su: