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à.
Guida introduttiva ad Amazon EMR Serverless
Questo tutorial ti aiuta a iniziare a usare EMR Serverless quando distribuisci un esempio di carico di lavoro Spark o Hive. Potrai creare, eseguire ed eseguire il debug della tua applicazione. Mostriamo le opzioni predefinite nella maggior parte di questo tutorial.
Prima di avviare un'applicazione EMR Serverless, completa le seguenti attività.
Concedi le autorizzazioni per l'utilizzo di Serverless EMR
Per utilizzare EMR Serverless, è necessario un utente o un IAM ruolo con una policy allegata che conceda le autorizzazioni per Serverless. EMR Per creare un utente e allegare la politica appropriata a quell'utente, segui le istruzioni riportate in. Concessione delle autorizzazioni
Prepara lo storage per EMR Serverless
In questo tutorial, utilizzerai un bucket S3 per archiviare i file di output e i log del carico di lavoro Spark o Hive di esempio che eseguirai utilizzando un'applicazione Serverless. EMR Per creare un bucket, segui le istruzioni in Creazione di un bucket nella Guida per l'utente della console di Amazon Simple Storage Service. Sostituisci ogni ulteriore riferimento a amzn-s3-demo-bucket
con il nome del bucket appena creato.
Crea uno EMR Studio per eseguire carichi di lavoro interattivi
Se desideri utilizzare EMR Serverless per eseguire query interattive tramite notebook ospitati in EMR Studio, devi specificare un bucket S3 e il ruolo di servizio minimo per Serverless per creare un workspace. EMR Per la procedura di configurazione, consulta Configurare uno EMR Studio nella Amazon EMR Management Guide. Per ulteriori informazioni sui carichi di lavoro interattivi, consultaEsegui carichi di lavoro interattivi con EMR Serverless tramite Studio EMR.
Creare un ruolo Job Runtime
Job eseguito in EMR Serverless utilizza un ruolo di runtime che fornisce autorizzazioni granulari per risorse specifiche Servizi AWS e in fase di esecuzione. In questo tutorial, un bucket S3 pubblico ospita i dati e gli script. Il bucket amzn-s3-demo-bucket
memorizza l'output.
Per impostare un ruolo di job runtime, create innanzitutto un ruolo di runtime con una policy di fiducia in modo che EMR Serverless possa utilizzare il nuovo ruolo. Quindi, collega la politica di accesso S3 richiesta a quel ruolo. I seguenti passaggi ti guidano attraverso il processo.
- Console
-
-
Passare alla console IAM all'indirizzo https://console.aws.amazon.com/iam/.
-
Nel pannello di navigazione a sinistra seleziona Ruoli.
-
Scegliere Crea ruolo.
-
Per il tipo di ruolo, scegli Politica di fiducia personalizzata e incolla la seguente politica di fiducia. Ciò consente ai lavori inviati alle tue applicazioni Amazon EMR Serverless di accedere ad altri per tuo Servizi AWS conto.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "emr-serverless.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
-
Scegli Avanti per accedere alla pagina Aggiungi autorizzazioni, quindi scegli Crea politica.
-
La pagina Crea policy si apre in una nuova scheda. Incolla la politica JSON qui sotto.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ReadAccessForEMRSamples",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::*.elasticmapreduce",
"arn:aws:s3:::*.elasticmapreduce/*"
]
},
{
"Sid": "FullAccessToOutputBucket",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:ListBucket",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::amzn-s3-demo-bucket
",
"arn:aws:s3:::amzn-s3-demo-bucket
/*"
]
},
{
"Sid": "GlueCreateAndReadDataCatalog",
"Effect": "Allow",
"Action": [
"glue:GetDatabase",
"glue:CreateDatabase",
"glue:GetDataBases",
"glue:CreateTable",
"glue:GetTable",
"glue:UpdateTable",
"glue:DeleteTable",
"glue:GetTables",
"glue:GetPartition",
"glue:GetPartitions",
"glue:CreatePartition",
"glue:BatchCreatePartition",
"glue:GetUserDefinedFunctions"
],
"Resource": ["*"]
}
]
}
-
Nella pagina Rivedi la politica, inserisci un nome per la tua politica, ad esempioEMRServerlessS3AndGlueAccessPolicy
.
-
Aggiorna la pagina Allega criteri di autorizzazione e scegli. EMRServerlessS3AndGlueAccessPolicy
-
Nella pagina Nome, rivedi e crea, in Nome ruolo, inserisci un nome per il tuo ruolo, ad esempio. EMRServerlessS3RuntimeRole
Per creare questo IAM ruolo, scegli Crea ruolo.
- CLI
-
-
Crea un file denominato emr-serverless-trust-policy.json
che contenga la politica di fiducia da utilizzare per il IAM ruolo. Il file deve contenere la seguente politica.
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "EMRServerlessTrustPolicy",
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": "emr-serverless.amazonaws.com"
}
}]
}
-
Crea un IAM ruolo denominatoEMRServerlessS3RuntimeRole
. Utilizza la politica di fiducia che hai creato nel passaggio precedente.
aws iam create-role \
--role-name EMRServerlessS3RuntimeRole \
--assume-role-policy-document file://emr-serverless-trust-policy.json
Annota il valore ARN nell'output. Durante l'invio ARN del lavoro, si utilizza il nuovo ruolo, denominato successivamente. job-role-arn
-
Crea un file denominato emr-sample-access-policy.json
che definisca la IAM politica per il tuo carico di lavoro. Ciò fornisce l'accesso in lettura allo script e ai dati archiviati nei bucket S3 pubblici e l'accesso in lettura/scrittura a. amzn-s3-demo-bucket
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ReadAccessForEMRSamples",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::*.elasticmapreduce",
"arn:aws:s3:::*.elasticmapreduce/*"
]
},
{
"Sid": "FullAccessToOutputBucket",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:ListBucket",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::amzn-s3-demo-bucket
",
"arn:aws:s3:::amzn-s3-demo-bucket
/*"
]
},
{
"Sid": "GlueCreateAndReadDataCatalog",
"Effect": "Allow",
"Action": [
"glue:GetDatabase",
"glue:CreateDatabase",
"glue:GetDataBases",
"glue:CreateTable",
"glue:GetTable",Understanding default application behavior, including auto-start and auto-stop, as well as maximum capacity and worker configurations for configuring an application with &EMRServerless;.
"glue:UpdateTable",
"glue:DeleteTable",
"glue:GetTables",
"glue:GetPartition",
"glue:GetPartitions",
"glue:CreatePartition",
"glue:BatchCreatePartition",
"glue:GetUserDefinedFunctions"
],
"Resource": ["*"]
}
]
}
-
Create una IAM policy denominata EMRServerlessS3AndGlueAccessPolicy
con il file di policy creato nel passaggio 3. Prendi nota dell'ARNoutput, poiché utilizzerai ARN la nuova politica nel passaggio successivo.
aws iam create-policy \
--policy-name EMRServerlessS3AndGlueAccessPolicy \
--policy-document file://emr-sample-access-policy.json
Nota che la nuova politica è ARN nell'output. La sostituirai policy-arn
nel passaggio successivo.
-
Allega la IAM policy EMRServerlessS3AndGlueAccessPolicy
al ruolo EMRServerlessS3RuntimeRole
Job Runtime.
aws iam attach-role-policy \
--role-name EMRServerlessS3RuntimeRole \
--policy-arn policy-arn