Scopri come inviare un workload batch sull'infrastruttura di computing di Managed Service for 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, a seconda delle necessità:
-
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, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.
Concedi i ruoli IAM, se necessario
Per eseguire gli esempi in questa pagina sono necessari determinati ruoli IAM. A seconda delle policy 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 workload batch serverless, chiedi all'amministratore di concederti i seguenti ruoli IAM:
- Dataproc Editor (
roles/dataproc.editor) sul progetto - Utente dell'account di servizio (
roles/iam.serviceAccountUser) sul service account predefinito di Compute Engine
Ruolo service account
Per assicurarti che il account di servizio predefinito di Compute Engine disponga delle autorizzazioni necessarie per inviare un workload batch serverless, chiedi all'amministratore di concedere il ruolo IAM Dataproc Worker (roles/dataproc.worker) al account di servizio predefinito di Compute Engine nel progetto.
Invia un workload batch Spark
Puoi utilizzare la console Google Cloud , Google Cloud CLI o l'API REST per creare e inviare un workload batch di Managed Service for Apache Spark.
Console
Nella console Google Cloud , vai alla pagina Job di Managed Service for Apache Spark.
Fai clic su Invia job per aprire la pagina Invia un job.
Invia un workload batch Spark che calcola il valore approssimativo di pi greco selezionando e compilando i seguenti campi:
- Seleziona il tipo di computing per il job: seleziona Spark serverless.
- Dettagli del job serverless:
- ID job: specifica un ID per il workload batch (o accetta l'ID predefinito). Questo valore deve contenere da 4 a 63 caratteri minuscoli, iniziare e terminare con una lettera minuscola o un numero e contenere solo lettere minuscole, numeri e trattini (
/[a-z0-9-]/). - Profilo di runtime: seleziona una regione nell'elenco Regioni e seleziona Configurazione del servizio predefinita (o un profilo di runtime salvato) nell'elenco Profili di runtime.
- Configura il profilo di runtime (facoltativo): nella scheda Riepilogo, fai clic su Configura (o fai clic su Crea nuovo profilo nel menu Profilo di runtime) per aprire il riquadro di configurazione del profilo di runtime, dove puoi personalizzare le seguenti impostazioni e poi fare clic su Usa configurazione (o Salva nuovo profilo):
- Livello e Configurazione esecutore: seleziona il livello di computing (Premium o Standard) e la forma dell'esecutore.
- Configurazione aggiuntiva:
- Configurazione di runtime: fai clic su Modifica per confermare o selezionare la versione di runtime Spark
3.0o per specificare un'immagine Spark personalizzata, un bucket di gestione temporanea di Cloud Storage o un repository di pacchetti Python. - Configurazione metastore: fai clic su Modifica per configurare il workload in modo che utilizzi un catalogo Lakehouse o un Dataproc Metastore autogestito esterno.
- Rete e sicurezza: fai clic su Modifica per selezionare Service account (per impostazione predefinita, il workload viene eseguito utilizzando il service account predefinito di Compute Engine oppure puoi specificare un account di servizio personalizzato con il ruolo Dataproc Worker) e seleziona una Subnet nella regione del workload (Managed Service for Apache Spark abilita l'accesso privato Google (PGA) nella subnet specificata; consulta Configurazione di rete di Managed Service for Apache Spark).
- Configurazione di runtime: fai clic su Modifica per confermare o selezionare la versione di runtime Spark
- ID job: specifica un ID per il workload batch (o accetta l'ID predefinito). Questo valore deve contenere da 4 a 63 caratteri minuscoli, iniziare e terminare con una lettera minuscola o un numero e contenere solo lettere minuscole, numeri e trattini (
- File e artefatti:
- Tipo di prestazione: seleziona Spark (Scala/Java).
- Configurazione driver: seleziona Classe principale.
- Classe principale:
org.apache.spark.examples.SparkPi
- Argomenti: inserisci
1000e premiEnter. - File jar (questo file è preinstallato nell'ambiente di esecuzione di Managed Service for Apache Spark):
file:///usr/lib/spark/examples/jars/spark-examples.jar
- Esecuzione e proprietà dei job:
- Proprietà Spark: fai clic su Aggiungi proprietà per inserire la Chiave (nome della proprietà) e il Valore delle proprietà Spark supportate da impostare sul workload batch Spark. Nota: a differenza delle proprietà del cluster di Managed Service for Apache Spark, le proprietà del workload di Managed Service for Apache Spark non includono un prefisso
spark:. - Etichette: (facoltativo) fai clic su Aggiungi etichetta per allegare coppie di etichette Chiave e Valore al workload.
- Proprietà Spark: fai clic su Aggiungi proprietà per inserire la Chiave (nome della proprietà) e il Valore delle proprietà Spark supportate da impostare sul workload batch Spark. Nota: a differenza delle proprietà del cluster di Managed Service for Apache Spark, le proprietà del workload di Managed Service for Apache Spark non includono un prefisso
Fai clic su Invia per eseguire il workload batch Spark.
gcloud
Per inviare un workload batch 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=3.0 \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ --class=org.apache.spark.examples.SparkPi \ -- 1000
Sostituisci quanto segue:
- REGION: Specifica la regione in cui verrà eseguito il tuo carico di lavoro.
- Altre opzioni: puoi aggiungere
flag
gcloud dataproc batches submit sparkper specificare altre opzioni del workload e proprietà di Spark.--jars: il file JAR di esempio è preinstallato nell'ambiente di esecuzione di Spark. L'argomento del comando1000passato al workload SparkPi specifica 1000 iterazioni della logica di stima di pi greco (gli argomenti di input del workload sono inclusi dopo "-- ").--subnetÈ possibile aggiungere questo flag per specificare il nome di una sottorete nella regione di sessione. Se non specifichi una subnet, Managed Service for Apache Spark seleziona la subnetdefaultnella regione della sessione. Managed Service for Apache Spark attiva l'accesso privato Google (PGA) sulla subnet. Per i requisiti di connettività di rete, consulta Configurazione di rete di Managed Service for Apache Spark.--tags: puoi aggiungere questo flag per specificare i tag di rete per il controllo del traffico. Utilizza i tag di rete per limitare la connettività. In produzione, la pratica consigliata è limitare le regole firewall agli indirizzi IP utilizzati dai workload Spark.--properties: puoi aggiungere questo flag per inserire le proprietà Spark supportate da utilizzare per il workload batch Spark.--deps-bucket: puoi aggiungere questo flag per specificare un bucket Cloud Storage in cui Managed Service for Apache Spark caricherà le dipendenze del workload. Il prefisso URIgs://del bucket non è obbligatorio; puoi specificare il percorso o il nome del bucket. Managed Service for Apache Spark carica i file locali in una cartella/dependenciesnel bucket prima di eseguire il workload batch. Nota: questo flag è obbligatorio se il workload batch fa riferimento a file sulla tua macchina locale.--ttl: puoi aggiungere il flag--ttlper specificare la durata del ciclo di vita del batch. Quando il workload supera questa durata, viene terminato incondizionatamente 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 workload batch di runtime 1.1 o 2.0, il workload può essere eseguito fino alla sua uscita naturale (o per sempre se non esce). - Batch di runtime 2.1+: se
--ttlnon è specificato per un workload 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 account di servizio, il workload viene eseguito con il service account predefinito di Compute Engine. Il tuo account di servizio deve avere il ruolo Dataproc Worker.- Hive Metastore: il seguente comando configura un workload batch per l'utilizzo di un Hive Metastore autogestito 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 comando seguente crea un PHS su un cluster Managed Service for Apache Spark a nodo singolo. Il PHS deve trovarsi nella regione in cui esegui i workload batch e 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 workload 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 Managed Service for Apache Spark a nodo singolo. Il PHS deve trovarsi nella regione in cui esegui i workload batch e il bucket-name di Cloud Storage deve esistere.
- Versione runtime:
utilizza il
flag
--versionper specificare la versione runtime di Managed Service for 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
API
Questa sezione mostra come creare un workload batch per calcolare il valore approssimativo di pi utilizzando batches.create` di Managed Service for Apache Spark
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: un ID progetto Google Cloud .
- region: una regione di Compute Engine in cui Managed Service for Apache Spark eseguirà il workload.
- PROJECT_ID: l'ID progetto Google Cloud . Gli ID progetto sono elencati nella sezione Informazioni sul progetto della dashboard della console Google Cloud .
- REGION: la regione della sessione.
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 dei workload
I workload di Managed Service for Apache Spark utilizzano risorse di Data Compute Unit (DCU) e di archiviazione shuffle. Per un esempio che genera UsageMetrics di Managed Service for Apache Spark per stimare il consumo di risorse e i costi del workload, consulta Prezzi di Managed Service for Apache Spark.
Passaggi successivi
Scopri di più su: