Scopri come inviare un workload batch sull'infrastruttura di calcolo gestita da Google Cloud Serverless per Apache Spark, che scala le risorse in base alle esigenze.
Prima di iniziare
Configura il progetto e, se necessario, concedi i ruoli Identity and Access Management.
Configura il progetto
Esegui uno o più dei seguenti passaggi in base alle necessità:
- 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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Dataproc API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Dataproc API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Editor Dataproc (
roles/dataproc.editor) sul progetto -
Utente Service Account (
roles/iam.serviceAccountUser) sul account di servizio predefinito Compute Engine Nella console Google Cloud , vai a Batch Dataproc.
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:
- Batch Info:
- 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 workload.
- 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
- Container:
- Tipo di batch: Spark.
- Versione runtime: conferma o seleziona la versione runtime
2.3. - Classe principale:
org.apache.spark.examples.SparkPi
- File JAR (questo file è preinstallato nell'ambiente di esecuzione Spark di Serverless per Apache Spark).
file:///usr/lib/spark/examples/jars/spark-examples.jar
- Argomenti: 1000.
- Execution Configuration (Configurazione dell'esecuzione): seleziona Service Account (Account di servizio). Per impostazione predefinita, il batch verrà eseguito utilizzando l'account di servizio predefinito di Compute Engine. Puoi specificare un account di servizio personalizzato. Il account di servizio predefinito o personalizzato deve avere il ruolo Worker Dataproc.
- Configurazione di rete:seleziona una subnet nella regione della sessione. Serverless per Apache Spark abilita l'accesso privato Google (PGA) sulla subnet specificata. Per i requisiti di connettività di rete, vedi Google Cloud Configurazione di rete di Serverless per Apache Spark.
- Proprietà:inserisci
Key(nome proprietà) eValuedelle proprietà Spark supportate da impostare nel carico di lavoro batch Spark. Nota: a differenza delle proprietà del cluster di Dataproc su Compute Engine, le proprietà del workload Serverless per Apache Spark non includono un prefissospark:. - Altre opzioni:
- Puoi configurare il workload batch in modo che utilizzi un Hive Metastoreautogestito esterno.
- Puoi utilizzare un server di cronologia permanente (PHS). Il PHS deve trovarsi nella regione in cui esegui i workload batch.
- Batch Info:
Fai clic su Invia per eseguire il carico di lavoro batch Spark.
- REGION: Specifica la regione in cui verrà eseguito il workload.
- Altre opzioni: puoi aggiungere
flag
gcloud dataproc batches submit sparkper specificare altre opzioni del workload e proprietà Spark.--jars: Il file JAR di esempio è preinstallato nell'ambiente di esecuzione Spark. L'argomento del comando1000passato al workload SparkPi specifica 1000 iterazioni della logica di stima di pi (gli argomenti di input del workload sono inclusi dopo "-- ").--subnet: Puoi aggiungere questo flag per specificare il nome di una subnet nella regione della sessione. Se non specifichi una subnet, Serverless per Apache Spark seleziona la subnetdefaultnella regione della sessione. Serverless per Apache Spark abilita l'accesso privato Google (PGA) sulla subnet. Per i requisiti di connettività di rete, vedi Google Cloud Configurazione di rete di Serverless per Apache Spark.--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 Serverless per Apache Spark caricherà le dipendenze del workload. Il prefisso URIgs://del bucket non è obbligatorio; puoi specificare il percorso del bucket o il nome del bucket. Serverless per Apache Spark carica i file locali in una cartella/dependenciesnel bucket prima di eseguire il workload batch. Nota: questo flag è obbligatorio se il tuo workload batch fa riferimento a file sul tuo computer locale.--ttl: puoi aggiungere il flag--ttlper specificare la durata del batch. Quando il carico di lavoro supera questa durata, viene terminato in modo incondizionato senza attendere il completamento del lavoro in corso. Specifica la durata utilizzando un suffissos,m,hod(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
--ttlnon è specificato per un carico di lavoro batch di runtime 1.1 o 2.0, il carico di lavoro può essere eseguito finché non viene chiuso naturalmente (o per sempre se non viene chiuso). - Batch di runtime 2.1+: se
--ttlnon è 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
--service-account: puoi specificare un service account da utilizzare per eseguire il workload. Se non specifichi un service account, il workload viene eseguito con l'account di servizio predefinito di Compute Engine. Il account di servizio deve avere il ruolo Worker Dataproc.- Hive Metastore: il seguente comando configura un carico di lavoro batch per utilizzare un
Hive Metastore autogestito
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 a un singolo nodo. Il PHS deve trovarsi nella regione in cui esegui i carichi di lavoro batch
e il bucket-name 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
- Il seguente comando crea un PHS su un cluster Dataproc a un singolo nodo. Il PHS deve trovarsi nella regione in cui esegui i carichi di lavoro batch
e il bucket-name Cloud Storage deve
esistere.
- Versione del runtime:
utilizza il flag
--versionper specificare la versione del runtime Serverless per Apache Spark per il workload.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: un Google Cloud ID progetto.
- region: una regione di Compute Engine in cui Google Cloud Serverless per Apache Spark eseguirà il workload.
- PROJECT_ID: l'ID progetto Google Cloud . Gli ID progetto sono elencati nella sezione Informazioni sul progetto della Google Cloud console Dashboard.
- REGION: la regione della sessione.
Concedi ruoli IAM, se necessario
Per eseguire gli esempi riportati in questa pagina sono necessari determinati ruoli IAM. A seconda dei criteri dell'organizzazione, questi ruoli potrebbero essere già stati concessi. Per controllare le concessioni dei ruoli, consulta Devi concedere i ruoli?.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Ruoli utente
Per ottenere le autorizzazioni necessarie per inviare un carico di lavoro batch serverless, chiedi all'amministratore di concederti i seguenti ruoli IAM:
Ruolo account di servizio
Per assicurarti che l'account di servizio predefinito di Compute Engine disponga delle autorizzazioni necessarie per inviare un carico di lavoro batch serverless,
chiedi all'amministratore di concedere all'account di servizio predefinito di Compute Engine il ruolo IAM Dataproc Worker (roles/dataproc.worker) sul progetto.
Invia un carico di lavoro batch Spark
Puoi utilizzare la console Google Cloud , Google Cloud CLI o l'API Dataproc per creare e inviare un carico di lavoro batch Serverless per Apache Spark.
Console
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
localmente in una finestra del terminale o in
Cloud Shell.
gcloud dataproc batches submit spark \ --region=REGION \ --version=2.3 \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ --class=org.apache.spark.examples.SparkPi \ -- 1000
Sostituisci quanto segue:
API
Questa sezione mostra come creare un workload batch
per calcolare il valore approssimativo
di pi utilizzando Serverless per Apache Spark
batches.create`
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
Note:
Metodo HTTP e URL:
POST https://dataproc.googleapis.com/v1/projects/project-id/locations/region/batches
Corpo JSON della richiesta:
{
"sparkBatch":{
"args":[
"1000"
],
"runtimeConfig": {
"version": "2.3",
},
"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":{
"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"
}
Stima i costi del workload
I carichi di lavoro Serverless per Apache Spark utilizzano le risorse di unità di calcolo dei dati (DCU) e di archiviazione shuffle. Per un esempio che restituisce UsageMetrics di Dataproc per stimare il consumo di risorse e i costi del workload, consulta Prezzi di Serverless per Apache Spark.
Passaggi successivi
Scopri di più su: