

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

# Conceitos básicos do Amazon EMR no EKS
<a name="getting-started"></a>

Este tópico ajuda você a começar a usar o Amazon EMR no EKS ao implantar uma aplicação do Spark em um cluster virtual. Inclui etapas para configurar as permissões corretas e iniciar um trabalho. Antes de começar, siga as etapas em [Configuração do Amazon EMR no EKS](setting-up.md). Isso ajuda você a obter ferramentas como a AWS CLI configurada antes de criar seu cluster virtual. Para outros modelos que podem ajudar você a começar, consulte nosso [Guia de práticas recomendadas de contêineres do EMR](https://aws.github.io/aws-emr-containers-best-practices/) em. GitHub

Você precisará das seguintes informações para as etapas de configuração:
+ O ID do cluster virtual para o cluster do Amazon EKS e o namespace do Kubernetes registrado no Amazon EMR.
**Importante**  
Ao criar um cluster do EKS, certifique-se de usar m5.xlarge como tipo de instância ou qualquer outro tipo de instância com CPU e memória superiores. Usar um tipo de instância com CPU ou memória inferior ao m5.xlarge, pode levar à falha do trabalho devido à insuficiência de recursos disponíveis no cluster.
+ O nome do perfil do IAM usado para a execução do trabalho.
+ O rótulo de versão da versão do Amazon EMR (por exemplo, `emr-6.4.0-latest`).
+ As metas de destino para o registro em log e o monitoramento:
  + Nome do grupo de CloudWatch log da Amazon e prefixo do fluxo de registros
  + A localização do Amazon S3 para armazenar logs de eventos e de contêineres.

**Importante**  
As tarefas do Amazon EMR no EKS usam a Amazon CloudWatch e o Amazon S3 como destinos para monitoramento e registro. Você pode monitorar o progresso do trabalho e solucionar falhas ao visualizar os logs de trabalho enviados para esses destinos. Para ativar o registro em log, a política do IAM associada ao perfil do IAM para a execução do trabalho deve ter as permissões necessárias para acessar os recursos das metas. Se a política do IAM não tiver as permissões necessárias, você deverá seguir as etapas descritas em [Atualização da política de confiança do perfil de execução de trabalho](setting-up-trust-policy.md) [Configurar uma execução de trabalho para usar registros do Amazon S3](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks-jobs-CLI.html#emr-eks-jobs-s3) [e Configurar uma execução de trabalho para CloudWatch usar registros antes de executar](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks-jobs-CLI.html#emr-eks-jobs-cloudwatch) esse exemplo de trabalho.

## Execução de uma aplicação do Spark
<a name="getting-started-run-spark-app"></a>

Siga as etapas a seguir para executar uma aplicação simples do Spark no Amazon EMR no EKS. O arquivo da aplicação `entryPoint` para a aplicação em Python do Spark está localizado em `s3://REGION.elasticmapreduce/emr-containers/samples/wordcount/scripts/wordcount.py`. *REGION*É a região na qual seu cluster virtual Amazon EMR no EKS reside, como. *us-east-1*

1. Atualize a política do IAM para o perfil de execução de trabalho com as permissões necessárias, conforme demonstram as instruções de política a seguir. 

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "ReadFromLoggingAndInputScriptBuckets",
         "Effect": "Allow",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket"
         ],
         "Resource": [
           "arn:aws:s3:::*.elasticmapreduce",
           "arn:aws:s3:::*.elasticmapreduce/*",
           "arn:aws:s3:::amzn-s3-demo-bucket",
           "arn:aws:s3:::amzn-s3-demo-bucket/*",
           "arn:aws:s3:::amzn-s3-demo-bucket-b",
           "arn:aws:s3:::amzn-s3-demo-bucket-b/*"
         ]
       },
       {
         "Sid": "WriteToLoggingAndOutputDataBuckets",
         "Effect": "Allow",
         "Action": [
           "s3:PutObject",
           "s3:DeleteObject"
         ],
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket/*",
           "arn:aws:s3:::amzn-s3-demo-bucket-b/*"
         ]
       },
       {
         "Sid": "DescribeAndCreateCloudwatchLogStream",
         "Effect": "Allow",
         "Action": [
           "logs:CreateLogStream",
           "logs:DescribeLogGroups",
           "logs:DescribeLogStreams"
         ],
         "Resource": [
           "arn:aws:logs:*:*:*"
         ]
       },
       {
         "Sid": "WriteToCloudwatchLogs",
         "Effect": "Allow",
         "Action": [
           "logs:PutLogEvents"
         ],
         "Resource": [
           "arn:aws:logs:*:*:log-group:my_log_group_name:log-stream:my_log_stream_prefix/*"
         ]
       }
     ]
   }
   ```

------
   + A primeira instrução `ReadFromLoggingAndInputScriptBuckets` nesta política concede acesso para `ListBucket` e `GetObjects` aos seguintes buckets do Amazon S3: 
     + `REGION.elasticmapreduce`: o bucket em que o arquivo da aplicação `entryPoint` está localizado.
     + *amzn-s3-demo-destination-bucket*‐ um bucket que você define para seus dados de saída. 
     + *amzn-s3-demo-logging-bucket*‐ um bucket que você define para seus dados de registro. 
   + A segunda instrução `WriteToLoggingAndOutputDataBuckets` nesta política concede ao trabalho as permissões para gravar dados em seus buckets de saída e de registro em log, respectivamente. 
   + A terceira declaração `DescribeAndCreateCloudwatchLogStream` concede ao trabalho permissões para descrever e criar Amazon CloudWatch Logs.
   + A quarta declaração `WriteToCloudwatchLogs` concede permissões para gravar registros em um grupo de CloudWatch registros da Amazon chamado *`my_log_group_name`* em um fluxo de registros chamado*`my_log_stream_prefix`*.

1. Para executar uma aplicação em Python do Spark, use o comando apresentado a seguir. Substitua todos os *red italicized* valores substituíveis por valores apropriados. *REGION*É a região na qual seu cluster virtual Amazon EMR no EKS reside, como. *us-east-1*

   ```
   aws emr-containers start-job-run \
   --virtual-cluster-id cluster_id \
   --name sample-job-name \
   --execution-role-arn execution-role-arn \
   --release-label emr-6.4.0-latest \
   --job-driver '{
     "sparkSubmitJobDriver": {
       "entryPoint": "s3://REGION.elasticmapreduce/emr-containers/samples/wordcount/scripts/wordcount.py",
       "entryPointArguments": ["s3://amzn-s3-demo-destination-bucket/wordcount_output"],
       "sparkSubmitParameters": "--conf spark.executor.instances=2 --conf spark.executor.memory=2G --conf spark.executor.cores=2 --conf spark.driver.cores=1"
     }
   }' \
   --configuration-overrides '{
     "monitoringConfiguration": {
       "cloudWatchMonitoringConfiguration": {
         "logGroupName": "my_log_group_name",
         "logStreamNamePrefix": "my_log_stream_prefix"
       },
       "s3MonitoringConfiguration": {
          "logUri": "s3://amzn-s3-demo-logging-bucket"
       }
     }
   }'
   ```

   Os dados de saída deste trabalho estarão disponíveis em `s3://amzn-s3-demo-destination-bucket/wordcount_output`.

   Você também pode criar um arquivo JSON com parâmetros especificados para sua execução de trabalho. Em seguida, execute o comando `start-job-run` com um caminho para o arquivo JSON. Para obter mais informações, consulte [Envio de uma execução de trabalho com `StartJobRun`](emr-eks-jobs-submit.md). Para obter mais detalhes sobre como configurar parâmetros de execução de trabalho, consulte [Opções para a configuração de uma execução de trabalho](emr-eks-jobs-CLI.md#emr-eks-jobs-parameters). 

1. Para executar uma aplicação em SQL do Spark, use o comando apresentado a seguir. Substitua todos *red italicized* os valores pelos valores apropriados. *REGION*É a região na qual seu cluster virtual Amazon EMR no EKS reside, como. *us-east-1*

   ```
   aws emr-containers start-job-run \
   --virtual-cluster-id cluster_id \
   --name sample-job-name \
   --execution-role-arn execution-role-arn \
   --release-label emr-6.7.0-latest \
   --job-driver '{
     "sparkSqlJobDriver": {
       "entryPoint": "s3://query-file.sql",
       "sparkSqlParameters": "--conf spark.executor.instances=2 --conf spark.executor.memory=2G --conf spark.executor.cores=2 --conf spark.driver.cores=1"
     }
   }' \
   --configuration-overrides '{
     "monitoringConfiguration": {
       "cloudWatchMonitoringConfiguration": {
         "logGroupName": "my_log_group_name",
         "logStreamNamePrefix": "my_log_stream_prefix"
       },
       "s3MonitoringConfiguration": {
          "logUri": "s3://amzn-s3-demo-logging-bucket"
       }
     }
   }'
   ```

   Um arquivo de consulta SQL de exemplo é mostrado abaixo. Você deve ter um armazenamento de arquivos externo, como o S3, no qual os dados das tabelas são armazenados. 

   ```
   CREATE DATABASE demo;
   CREATE EXTERNAL TABLE IF NOT EXISTS demo.amazonreview( marketplace string, customer_id string, review_id  string, product_id  string, product_parent  string, product_title  string, star_rating  integer, helpful_votes  integer, total_votes  integer, vine  string, verified_purchase  string, review_headline  string, review_body  string, review_date  date, year  integer) STORED AS PARQUET LOCATION 's3://URI to parquet files';
   SELECT count(*) FROM demo.amazonreview;
   SELECT count(*) FROM demo.amazonreview WHERE star_rating = 3;
   ```

   A saída desse trabalho estará disponível nos registros de stdout do driver no S3 ou CloudWatch, dependendo do `monitoringConfiguration` que estiver configurado.

1. Você também pode criar um arquivo JSON com parâmetros especificados para sua execução de trabalho. Em seguida, execute o comando start-job-run com um caminho para o arquivo JSON. Para obter mais informações, consulte Envio de uma execução de trabalho. Para obter mais detalhes sobre como configurar parâmetros de execução de trabalho, consulte Opções para a configuração de uma execução de trabalho. 

   Para monitorar o progresso do trabalho ou para depurar falhas, você pode inspecionar os logs enviados para o Amazon S3 CloudWatch , Logs ou ambos. Consulte o caminho do log no Amazon S3 em [Configurar uma execução de trabalho para usar registros do S3 e para os registros](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks-jobs-CLI.html#emr-eks-jobs-s3) do Cloudwatch em [Configurar uma execução de trabalho](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks-jobs-CLI.html#emr-eks-jobs-cloudwatch) para usar registros. CloudWatch Para ver os registros no CloudWatch Logs, siga as instruções abaixo.
   + Abra o CloudWatch console em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).
   + No painel de **navegação**, selecione **Logs**. Em seguida, escolha **Grupos de logs**.
   + Escolha o grupo de logs do Amazon EMR no EKS e, em seguida, visualize os eventos de log carregados.   
![\[Monitoramento usando CloudWatch registros\]](http://docs.aws.amazon.com/pt_br/emr/latest/EMR-on-EKS-DevelopmentGuide/images/emr-on-eks-monitoring.png)

**Importante**  
Os trabalhos têm uma [política de repetição padrão configurada](jobruns-using-retry-policies.md#retry-config). Para obter informações sobre como modificar ou desabilitar a configuração, consulte [Uso de políticas de repetição de trabalho](jobruns-using-retry-policies.md).