Scopri come inviare un carico di lavoro batch sull'infrastruttura di calcolo di Managed Service 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 esigenze:
- Accedi al tuo Google Cloud account. Se non hai mai utilizzato Google Cloud, crea un account per valutare il rendimento dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per eseguire, testare ed eseguire il deployment dei workload.
-
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.
Concedi i ruoli IAM, se necessario
Per eseguire gli esempi in questa pagina sono necessari alcuni ruoli IAM. A seconda delle policy dell'organizzazione, questi ruoli potrebbero essere già stati concessi. Per verificare le concessioni dei ruoli, consulta la sezione Devi concedere i ruoli?.
Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestire 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:
-
Editor Dataproc (
roles/dataproc.editor) sul progetto -
Utente account di servizio (
roles/iam.serviceAccountUser) sul service account predefinito di Compute Engine
Ruolo dell'account di servizio
Per assicurarti che il account di servizio predefinito di Compute Engine disponga delle autorizzazioni necessarie
per inviare un carico di lavoro batch serverless,
chiedi all'amministratore di concedere al account di servizio predefinito di Compute Engine il ruolo IAM Worker Dataproc (roles/dataproc.worker)
sul progetto.
Invia un carico di lavoro batch Spark
Puoi utilizzare la Google Cloud console, Google Cloud CLI o l' API REST per creare e inviare un carico di lavoro batch di Managed Service per Apache Spark.
Console
Nella Google Cloud console, vai a Batch di Managed Service per Apache Spark.
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 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
- 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 Managed Service per Apache Spark).
file:///usr/lib/spark/examples/jars/spark-examples.jar
- Argomenti: 1000.
- Configurazione dell'esecuzione: seleziona Service Account. Per impostazione predefinita, il batch verrà eseguito utilizzando il service account 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. Managed Service per Apache Spark abilita l'accesso privato Google (PGA) sulla subnet specificata. Per i requisiti di connettività di rete, consulta Configurazione di rete di Managed Service per Apache Spark.
- Proprietà: inserisci la
Key(nome della proprietà) e ilValuedi proprietà Spark supportate da impostare nel carico di lavoro batch Spark. Nota: a differenza delle proprietà del cluster di Managed Service per Apache Spark , le proprietà del carico di lavoro di Managed Service per Apache Spark non includono un prefissospark:. - Altre opzioni:
- Puoi configurare il carico di lavoro batch in modo che utilizzi un esterno autogestito metastore Hive.
- Puoi utilizzare un server di cronologia permanente (PHS). Il PHS deve trovarsi nella regione in cui esegui 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 per calcolare il valore approssimativo
di pi, esegui il comando
gcloud dataproc batches submit spark
di gcloud CLI 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:
- REGION: Specifica la regione in cui verrà eseguito il carico di lavoro.
- Altre opzioni: Puoi aggiungere
gcloud dataproc batches submit sparkflag per specificare altre opzioni del carico di lavoro e proprietà Spark.--jars: Il file JAR di esempio è preinstallato nell'ambiente di esecuzione Spark. L'argomento del comando1000passato al carico di lavoro SparkPi specifica 1000 iterazioni della logica di stima di pi greco (gli argomenti di input del carico di lavoro sono inclusi dopo "-- ").--subnet: puoi aggiungere questo flag per specificare il nome di una subnet nella regione della sessione. Se non specifichi una subnet, Managed Service per Apache Spark seleziona ladefaultsubnet nella regione della sessione. Managed Service per Apache Spark abilita l'accesso privato Google (PGA) sulla subnet. Per i requisiti di connettività di rete, consulta Configurazione di rete di Managed Service per 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 prassi consigliata è limitare le regole firewall agli indirizzi IP utilizzati dai carichi di lavoro 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 Managed Service per Apache Spark caricherà le dipendenze del carico di lavoro. Il prefisso URIgs://del bucket non è obbligatorio; puoi specificare il percorso del bucket o il nome del bucket. Managed Service per Apache Spark carica i file locali in una cartella/dependenciesnel bucket prima di eseguire il carico di lavoro batch. Nota: questo flag è obbligatorio se il carico di lavoro batch fa riferimento a file sulla macchina locale.--ttl: puoi aggiungere il--ttlflag per specificare la durata della durata 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 uns,m,h, od(secondi, minuti, ore o giorni) suffisso. Il valore minimo è 10 minuti (10m), e il valore massimo è 14 giorni (14d).- Batch runtime 1.1 o 2.0: se
--ttlnon è specificato per un carico di lavoro batch runtime 1.1 o 2.0, il carico di lavoro può essere eseguito fino a quando non viene chiuso naturalmente (o per sempre se non viene chiuso). - Batch runtime 2.1 o versioni successive: se
--ttlnon è specificato per un carico di lavoro batch runtime 2.1 o versioni successive, il valore predefinito è4h.
- Batch runtime 1.1 o 2.0: se
--service-account: puoi specificare un service account da utilizzare per eseguire il carico di lavoro. Se non specifichi un account di servizio, il carico di lavoro viene eseguito con il service account predefinito di Compute Engine. Il account di servizio deve avere il ruolo Worker Dataproc.- Metastore Hive: il seguente comando configura un carico di lavoro batch in modo che utilizzi un metastore Hive esterno
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 Managed Service per Apache Spark a nodo singolo. 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 Managed Service per Apache Spark a nodo singolo. Il PHS deve trovarsi nella regione in cui esegui i carichi di lavoro batch,
e il bucket-name Cloud Storage deve
esistere.
- Versione runtime:
utilizza il
--versionflag per specificare la versione runtime di Managed Service per Apache Spark 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
API
Questa sezione mostra come creare un carico di lavoro batch
per calcolare il valore approssimativo
di pi utilizzando Managed Service per Apache Spark
batches.create`
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: l' Google Cloud ID progetto.
- region: una regione Compute Engine in cui Managed Service per Apache Spark eseguirà il carico di lavoro.
- PROJECT_ID: l' Google Cloud ID progetto. Gli ID progetto sono elencati nella sezione Informazioni sul progetto su la Google Cloud console Dashboard.
- 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 del carico di lavoro
I carichi di lavoro di Managed Service per Apache Spark consumano risorse di unità di calcolo dati (DCU) e di archiviazione shuffle. Per un esempio che restituisce UsageMetrics di Managed Service per Apache Spark per stimare il consumo di risorse e i costi del carico di lavoro, consulta Prezzi di Managed Service per Apache Spark.
Passaggi successivi
Scopri di più su: