Comece a usar o Amazon EMR Serverless - Amazon EMR

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Comece a usar o Amazon EMR Serverless

Este tutorial ajuda você a começar a usar o EMR Serverless ao implantar uma amostra de carga de trabalho do Spark ou do Hive. Você criará, executará e depurará seu próprio aplicativo. Mostramos as opções padrão na maior parte deste tutorial.

Antes de iniciar um aplicativo EMR sem servidor, conclua as tarefas a seguir.

Conceda permissões para usar o EMR Serverless

Para usar o EMR Serverless, você precisa de um usuário ou IAM função com uma política anexada que conceda permissões para EMR o Serverless. Para criar um usuário e anexar a política apropriada a esse usuário, siga as instruções emConceder permissões.

Prepare o armazenamento sem EMR servidor

Neste tutorial, você usará um bucket do S3 para armazenar arquivos e registros de saída da amostra de carga de trabalho do Spark ou do Hive que você executará usando um aplicativo sem servidor. EMR Para criar um bucket, siga as instruções em Como criar um bucket no Guia do usuário do console do Amazon Simple Storage Service. Substitua qualquer referência adicional amzn-s3-demo-bucket a pelo nome do bucket recém-criado.

Crie um EMR estúdio para executar cargas de trabalho interativas

Se você quiser usar o EMR Serverless para executar consultas interativas por meio de notebooks hospedados no EMR Studio, você precisa especificar um bucket S3 e a função de serviço mínima para o EMR Serverless criar um espaço de trabalho. Para ver as etapas de configuração, consulte Configurar um EMR estúdio no Guia EMR de gerenciamento da Amazon. Para obter mais informações sobre cargas de trabalho interativas, consulteExecute cargas de trabalho interativas com o EMR Serverless por meio do Studio EMR.

Crie uma função de tempo de execução do trabalho

Os trabalhos executados no EMR Serverless usam uma função de tempo de execução que fornece permissões granulares para recursos específicos Serviços da AWS e em tempo de execução. Neste tutorial, um bucket público do S3 hospeda os dados e os scripts. O bucket amzn-s3-demo-bucket armazena a saída.

Para configurar uma função de tempo de execução do trabalho, primeiro crie uma função de tempo de execução com uma política de confiança para que o EMR Serverless possa usar a nova função. Em seguida, anexe a política de acesso S3 necessária a essa função. As etapas a seguir orientam você pelo processo.

Console
  1. Navegue até o console do IAM no https://console.aws.amazon.com/iam/.

  2. No painel de navegação à esquerda, escolha Roles.

  3. Selecione Criar função.

  4. Para o tipo de função, escolha Política de confiança personalizada e cole a política de confiança a seguir. Isso permite que trabalhos enviados para seus aplicativos Amazon EMR Serverless Serviços da AWS acessem outros em seu nome.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "emr-serverless.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  5. Escolha Avançar para navegar até a página Adicionar permissões e, em seguida, escolha Criar política.

  6. A página Criar política é aberta em uma nova guia. Cole a política JSON abaixo.

    Importante

    Substitua amzn-s3-demo-bucket na política abaixo pelo nome real do bucket criado emPrepare o armazenamento sem EMR servidor. Essa é uma política básica para acesso ao S3. Para obter mais exemplos de funções de execução de tarefas, consulteFunções de tempo de execução de trabalho para 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. Na página Revisar política, insira um nome para sua política, comoEMRServerlessS3AndGlueAccessPolicy.

  8. Atualize a página Anexar política de permissões e escolhaEMRServerlessS3AndGlueAccessPolicy.

  9. Na página Nome, revisão e criação, em Nome da função, insira um nome para sua função, por exemplo,EMRServerlessS3RuntimeRole. Para criar essa IAM função, escolha Criar função.

CLI
  1. Crie um arquivo chamado emr-serverless-trust-policy.json que contenha a política de confiança a ser usada para a IAM função. O arquivo deve conter a seguinte política.

    { "Version": "2012-10-17", "Statement": [{ "Sid": "EMRServerlessTrustPolicy", "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "emr-serverless.amazonaws.com" } }] }
  2. Crie uma IAM função chamadaEMRServerlessS3RuntimeRole. Use a política de confiança que você criou na etapa anterior.

    aws iam create-role \ --role-name EMRServerlessS3RuntimeRole \ --assume-role-policy-document file://emr-serverless-trust-policy.json

    Observe ARN na saída. Você usa a ARN da nova função durante o envio do trabalho, depois chamada dejob-role-arn.

  3. Crie um arquivo chamado emr-sample-access-policy.json que defina a IAM política para sua carga de trabalho. Isso fornece acesso de leitura ao script e aos dados armazenados em buckets públicos do S3 e acesso de leitura e gravação a. amzn-s3-demo-bucket

    Importante

    Substitua amzn-s3-demo-bucket na política abaixo pelo nome real do bucket criado emPrepare o armazenamento sem EMR servidor.. Essa é uma política básica para acesso ao AWS Glue e ao S3. Para obter mais exemplos de funções de execução de tarefas, consulteFunções de tempo de execução de trabalho para 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. Crie uma IAM política nomeada EMRServerlessS3AndGlueAccessPolicy com o arquivo de política que você criou na Etapa 3. Anote o ARN resultado, pois você usará ARN a nova política na próxima etapa.

    aws iam create-policy \ --policy-name EMRServerlessS3AndGlueAccessPolicy \ --policy-document file://emr-sample-access-policy.json

    Observe a nova política ARN na saída. Você o substituirá policy-arn na próxima etapa.

  5. Anexe a IAM política EMRServerlessS3AndGlueAccessPolicy à função de tempo de execução do trabalhoEMRServerlessS3RuntimeRole.

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