Guida introduttiva ad Amazon EMR Serverless - Amazon EMR

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
  1. Passare alla console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  2. Nel pannello di navigazione a sinistra seleziona Ruoli.

  3. Scegliere Crea ruolo.

  4. 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" } ] }
  5. Scegli Avanti per accedere alla pagina Aggiungi autorizzazioni, quindi scegli Crea politica.

  6. La pagina Crea policy si apre in una nuova scheda. Incolla la politica JSON qui sotto.

    Importante

    Sostituisci amzn-s3-demo-bucket la politica seguente con il nome effettivo del bucket creato inPrepara lo storage per EMR Serverless. Questa è una politica di base per l'accesso a S3. Per altri esempi di ruoli di job runtime, consultaRuoli Job Runtime per Amazon EMR Serverless.

    { "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": ["*"] } ] }
  7. Nella pagina Rivedi la politica, inserisci un nome per la tua politica, ad esempioEMRServerlessS3AndGlueAccessPolicy.

  8. Aggiorna la pagina Allega criteri di autorizzazione e scegli. EMRServerlessS3AndGlueAccessPolicy

  9. 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
  1. 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" } }] }
  2. 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

  3. 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

    Importante

    amzn-s3-demo-bucketSostituiscilo nella policy seguente con il nome effettivo del bucket creato in.. Prepara lo storage per EMR Serverless Questa è una politica di base per l'accesso a AWS Glue e S3. Per altri esempi di ruoli in fase di job runtime, consultaRuoli Job Runtime per Amazon EMR Serverless.

    { "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": ["*"] } ] }
  4. 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.

  5. Allega la IAM policy EMRServerlessS3AndGlueAccessPolicy al ruolo EMRServerlessS3RuntimeRole Job Runtime.

    aws iam attach-role-policy \ --role-name EMRServerlessS3RuntimeRole \ --policy-arn policy-arn