Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Iniziare da AWS CLI
Passaggio 1: creare un'applicazione EMR serverless
Usa il emr-serverless
create-application
comando per creare la tua prima applicazione EMR serverless. Devi specificare il tipo di applicazione e l'etichetta di EMR rilascio Amazon associata alla versione dell'applicazione che desideri utilizzare. Il nome dell'applicazione è facoltativo.
- Spark
-
Per creare un'applicazione Spark, esegui il comando seguente.
aws emr-serverless create-application \
--release-label emr-6.6.0 \
--type "SPARK" \
--name my-application
- Hive
-
Per creare un'applicazione Hive, esegui il comando seguente.
aws emr-serverless create-application \
--release-label emr-6.6.0 \
--type "HIVE" \
--name my-application
Annotate l'ID dell'applicazione restituito nell'output. Utilizzerai l'ID per avviare la candidatura e durante l'invio del lavoro, in seguito denominato. application-id
Prima di passare aFase 2: Inviare un job eseguito all'applicazione EMR Serverless, assicurati che la tua candidatura abbia raggiunto lo CREATED
stato con. get-application
API
aws emr-serverless get-application \
--application-id application-id
EMRServerless crea lavoratori per soddisfare i lavori richiesti. Per impostazione predefinita, questi vengono creati su richiesta, ma è anche possibile specificare una capacità preinizializzata impostando il initialCapacity
parametro al momento della creazione dell'applicazione. È inoltre possibile limitare la capacità massima totale che un'applicazione può utilizzare con il maximumCapacity
parametro. Per ulteriori informazioni su queste opzioni, consulta Configurazione di un'applicazione.
Fase 2: Inviare un job eseguito all'applicazione EMR Serverless
Ora la tua applicazione EMR Serverless è pronta per eseguire i lavori.
- Spark
-
In questo passaggio, utilizziamo uno PySpark script per calcolare il numero di occorrenze di parole uniche in più file di testo. Un bucket S3 pubblico di sola lettura memorizza sia lo script che il set di dati. L'applicazione invia il file di output e i dati di registro dal runtime Spark /output
e alle /logs
directory del bucket S3 che hai creato.
Per eseguire un job Spark
-
Usa il seguente comando per copiare lo script di esempio che eseguiremo nel tuo nuovo bucket.
aws s3 cp s3://us-east-1.elasticmapreduce/emr-containers/samples/wordcount/scripts/wordcount.py s3://amzn-s3-demo-bucket
/scripts/
-
Nel comando seguente, sostituiscilo application-id
con l'ID dell'applicazione. Sostituiscilo job-role-arn
con il ruolo di runtime in ARN cui hai creato. Creare un ruolo Job Runtime Sostituto job-run-name
con il nome che vuoi chiamare job run. Sostituisci tutte amzn-s3-demo-bucket
le stringhe con il bucket Amazon S3 che hai creato e /output
aggiungile al percorso. Questo crea una nuova cartella nel bucket in cui EMR Serverless può copiare i file di output dell'applicazione.
aws emr-serverless start-job-run \
--application-id application-id
\
--execution-role-arn job-role-arn
\
--name job-run-name
\
--job-driver '{
"sparkSubmit": {
"entryPoint": "s3://amzn-s3-demo-bucket
/scripts/wordcount.py",
"entryPointArguments": ["s3://amzn-s3-demo-bucket
/emr-serverless-spark/output"],
"sparkSubmitParameters": "--conf spark.executor.cores=1 --conf spark.executor.memory=4g --conf spark.driver.cores=1 --conf spark.driver.memory=4g --conf spark.executor.instances=1"
}
}'
-
Annotate l'ID di esecuzione del lavoro restituito nell'output. Sostituiscilo job-run-id
con questo ID nei passaggi seguenti.
- Hive
-
In questo tutorial, creiamo una tabella, inseriamo alcuni record ed eseguiamo una query di aggregazione del conteggio. Per eseguire il job Hive, devi prima creare un file che contenga tutte le query Hive da eseguire come parte di un singolo job, carica il file su S3 e specifica questo percorso S3 all'avvio del job Hive.
Per eseguire un lavoro Hive
-
Crea un file chiamato hive-query.ql
che contenga tutte le query che desideri eseguire nel tuo job Hive.
create database if not exists emrserverless;
use emrserverless;
create table if not exists test_table(id int);
drop table if exists Values__Tmp__Table__1;
insert into test_table values (1),(2),(2),(3),(3),(3);
select id, count(id) from test_table group by id order by id desc;
-
Carica hive-query.ql
nel tuo bucket S3 con il seguente comando.
aws s3 cp hive-query.ql s3://amzn-s3-demo-bucket
/emr-serverless-hive/query/hive-query.ql
-
Nel comando seguente, sostituiscilo application-id
con il tuo ID dell'applicazione. Sostituiscilo job-role-arn
con il ruolo di runtime in ARN cui hai creato. Creare un ruolo Job Runtime Sostituisci tutte amzn-s3-demo-bucket
le stringhe con il bucket Amazon S3 che hai creato e /output
aggiungi /logs
e al percorso. In questo modo vengono create nuove cartelle nel bucket, in cui EMR Serverless può copiare i file di output e di registro dell'applicazione.
aws emr-serverless start-job-run \
--application-id application-id
\
--execution-role-arn job-role-arn
\
--job-driver '{
"hive": {
"query": "s3://amzn-s3-demo-bucket
/emr-serverless-hive/query/hive-query.ql",
"parameters": "--hiveconf hive.log.explain.output=false"
}
}' \
--configuration-overrides '{
"applicationConfiguration": [{
"classification": "hive-site",
"properties": {
"hive.exec.scratchdir": "s3://amzn-s3-demo-bucket
/emr-serverless-hive/hive/scratch",
"hive.metastore.warehouse.dir": "s3://amzn-s3-demo-bucket
/emr-serverless-hive/hive/warehouse",
"hive.driver.cores": "2",
"hive.driver.memory": "4g",
"hive.tez.container.size": "4096",
"hive.tez.cpu.vcores": "1"
}
}],
"monitoringConfiguration": {
"s3MonitoringConfiguration": {
"logUri": "s3://amzn-s3-demo-bucket
/emr-serverless-hive/logs"
}
}
}'
-
Annotate l'ID di esecuzione del processo restituito nell'output. Sostituiscilo job-run-id
con questo ID nei passaggi seguenti.
Fase 3: Esaminate l'output dell'esecuzione del job
Il completamento dell'esecuzione del processo dovrebbe in genere richiedere 3-5 minuti.
- Spark
-
Puoi controllare lo stato del tuo job Spark con il seguente comando.
aws emr-serverless get-job-run \
--application-id application-id
\
--job-run-id job-run-id
Con la destinazione dei log impostata sus3://amzn-s3-demo-bucket
/emr-serverless-spark/logs
, puoi trovare i log relativi a questo specifico job in cui viene eseguito. s3://amzn-s3-demo-bucket
/emr-serverless-spark/logs/applications/application-id
/jobs/job-run-id
Per le applicazioni Spark, EMR Serverless invia i registri degli eventi ogni 30 secondi sparklogs
nella cartella nella destinazione dei registri S3. Al termine del processo, i log di runtime di Spark relativi al driver e agli esecutori vengono caricati in cartelle denominate in modo appropriato in base al tipo di lavoratore, ad esempio o. driver
executor
L'output del lavoro viene caricato su. PySpark s3://amzn-s3-demo-bucket
/output/
- Hive
-
Puoi controllare lo stato del tuo lavoro in Hive con il seguente comando.
aws emr-serverless get-job-run \
--application-id application-id
\
--job-run-id job-run-id
Con la destinazione del registro impostata sus3://amzn-s3-demo-bucket
/emr-serverless-hive/logs
, puoi trovare i log relativi a questo specifico processo in cui viene eseguito. s3://amzn-s3-demo-bucket
/emr-serverless-hive/logs/applications/application-id
/jobs/job-run-id
Per le applicazioni Hive, EMR Serverless carica continuamente il driver Hive HIVE_DRIVER
nella cartella e i registri delle attività Tez nella TEZ_TASK
cartella della destinazione del registro S3. Dopo che l'esecuzione del processo raggiunge SUCCEEDED
lo stato, l'output della tua query Hive diventa disponibile nella posizione Amazon S3 che hai specificato monitoringConfiguration
nel campo di. configurationOverrides
Fase 4: pulizia
Quando hai finito di lavorare con questo tutorial, valuta la possibilità di eliminare le risorse che hai creato. Ti consigliamo di rilasciare risorse che non intendi riutilizzare.
Elimina la tua applicazione
Per eliminare un'applicazione, utilizzare il seguente comando.
aws emr-serverless delete-application \
--application-id application-id
Elimina il tuo bucket di log S3
Per eliminare il bucket di registrazione e output S3, usa il seguente comando. Sostituisci amzn-s3-demo-bucket
con il nome effettivo del bucket S3 creato in.. Prepara lo storage per EMR Serverless
aws s3 rm s3://amzn-s3-demo-bucket
--recursive
aws s3api delete-bucket --bucket amzn-s3-demo-bucket
Elimina il ruolo Job Runtime
Per eliminare il ruolo di runtime, scollega la policy dal ruolo. È quindi possibile eliminare sia il ruolo che la politica.
aws iam detach-role-policy \
--role-name EMRServerlessS3RuntimeRole \
--policy-arn policy-arn
Per eliminare il ruolo, utilizzare il comando seguente.
aws iam delete-role \
--role-name EMRServerlessS3RuntimeRole
Per eliminare la politica allegata al ruolo, utilizzare il comando seguente.
aws iam delete-policy \
--policy-arn policy-arn
Per altri esempi di esecuzione dei job Spark e Hive, consulta Offerte di lavoro Spark e. Lavori Hive