

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Commencer à utiliser Amazon EMR sur EKS
<a name="getting-started"></a>

Cette rubrique vous aide à commencer à utiliser Amazon EMR on EKS en déployant une application Spark sur un cluster virtuel. Il inclut les étapes permettant de configurer les autorisations appropriées et de démarrer une tâche. Avant de commencer, assurez-vous d'avoir terminé les étapes de [Configuration d'Amazon EMR on EKS](setting-up.md). Cela vous permet d'obtenir des outils tels que la AWS CLI configuration avant de créer votre cluster virtuel. Pour d'autres modèles qui peuvent vous aider à démarrer, consultez notre [guide des meilleures pratiques en matière de conteneurs EMR](https://aws.github.io/aws-emr-containers-best-practices/) sur. GitHub

Lors des étapes de configuration, vous aurez besoin des informations suivantes :
+ L'identifiant du cluster virtuel pour le cluster Amazon EKS et l'espace de noms Kubernetes enregistrés dans Amazon EMR
**Important**  
Lors de la création d'un cluster EKS, veillez à utiliser m5.xlarge comme type d'instance, ou tout autre type d'instance disposant d'une capacité plus élevée en matière de CPU et de mémoire. L'utilisation d'un type d'instance dont la CPU ou la mémoire sont inférieurs à celles de m5.xlarge peut entraîner l'échec de la tâche en raison de l'insuffisance des ressources disponibles dans le cluster.
+ Nom du rôle IAM utilisé pour l'exécution de la tâche
+ Étiquette de version Amazon EMR (par exemple, `emr-6.4.0-latest`)
+ Cibles de destination pour la journalisation et la surveillance :
  + Nom du groupe de CloudWatch journaux Amazon et préfixe du flux de journaux
  + Emplacement Amazon S3 pour stocker les journaux des événements et des conteneurs

**Important**  
Les tâches Amazon EMR on EKS utilisent Amazon CloudWatch et Amazon S3 comme cibles de destination pour la surveillance et la journalisation. Vous pouvez suivre l'avancement des tâches et résoudre les échecs en consultant les journaux des tâches envoyés à ces destinations. Pour activer la journalisation, la politique IAM associée au rôle IAM pour l'exécution des tâches doit disposer des autorisations requises pour accéder aux ressources cibles. Si la politique IAM ne dispose pas des autorisations requises, vous devez suivre les étapes décrites dans [Mise à jour la politique d'approbation du rôle d'exécution des tâches](setting-up-trust-policy.md) [Configurer l'exécution d'une tâche pour utiliser les journaux Amazon S3](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks-jobs-CLI.html#emr-eks-jobs-s3) et [Configurer une tâche exécutée pour utiliser les CloudWatch journaux avant d'exécuter](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks-jobs-CLI.html#emr-eks-jobs-cloudwatch) cet exemple de tâche.

## Exécution d'une application Spark
<a name="getting-started-run-spark-app"></a>

Pour exécuter une application Spark simple sur Amazon EMR on EKS, procédez comme suit. Le fichier d'application `entryPoint` d'une application Spark Python se trouve à l'adresse `s3://{{REGION}}.elasticmapreduce/emr-containers/samples/wordcount/scripts/wordcount.py`. {{REGION}}Il s'agit de la région dans laquelle réside votre cluster virtuel Amazon EMR on EKS, par exemple. {{us-east-1}}

1. Mettez à jour la politique IAM pour le rôle d'exécution des tâches avec les autorisations requises, comme le montrent les déclarations de politique ci-dessous. 

------
#### [ 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}}/*"
         ]
       }
     ]
   }
   ```

------
   + La première déclaration `ReadFromLoggingAndInputScriptBuckets` de cette politique accorde à `ListBucket` et `GetObjects` l'accès aux compartiments Amazon S3 suivants : 
     + `{{REGION}}.elasticmapreduce` : le compartiment dans lequel se trouve le fichier d'application `entryPoint`.
     + {{amzn-s3-demo-destination-bucket}}‐ un compartiment que vous définissez pour vos données de sortie. 
     + {{amzn-s3-demo-logging-bucket}}‐ un compartiment que vous définissez pour vos données de journalisation. 
   + La deuxième déclaration `WriteToLoggingAndOutputDataBuckets` de cette politique accorde à la tâche l'autorisation d'écrire des données dans vos compartiments de sortie et de journalisation, respectivement. 
   + La troisième déclaration `DescribeAndCreateCloudwatchLogStream` accorde à la tâche l'autorisation de décrire et de créer Amazon CloudWatch Logs.
   + La quatrième instruction `WriteToCloudwatchLogs` accorde l'autorisation d'écrire des journaux dans un groupe de CloudWatch journaux Amazon nommé {{`my_log_group_name`}} sous un flux de journaux nommé{{`my_log_stream_prefix`}}.

1. Pour exécuter une application Spark Python, utilisez la commande ci-dessous. Remplacez toutes les {{red italicized}} valeurs remplaçables par les valeurs appropriées. {{REGION}}Il s'agit de la région dans laquelle réside votre cluster virtuel Amazon EMR on EKS, par exemple. {{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}}"
       }
     }
   }'
   ```

   Les données de sortie de cette tâche seront disponibles à l'adresse `s3://{{amzn-s3-demo-destination-bucket}}/wordcount_output`.

   Vous pouvez également créer un fichier JSON avec des paramètres spécifiques pour l'exécution de votre tâche. Exécutez ensuite la commande `start-job-run` avec un chemin d'accès au fichier JSON. Pour de plus amples informations, veuillez consulter [Soumission d'une tâche exécutée avec `StartJobRun`](emr-eks-jobs-submit.md). Pour plus d'informations sur la configuration des paramètres d'exécution des tâches, consultez [Options de configuration d'une exécution de tâche](emr-eks-jobs-CLI.md#emr-eks-jobs-parameters). 

1. Pour exécuter une application Spark SQL, utilisez la commande ci-dessous. Remplacez toutes les {{red italicized}} valeurs par les valeurs appropriées. {{REGION}}Il s'agit de la région dans laquelle réside votre cluster virtuel Amazon EMR on EKS, par exemple. {{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}}"
       }
     }
   }'
   ```

   Un exemple de fichier de requête SQL est présenté ci-dessous. Vous devez disposer d'un magasin de fichiers externe, tel que S3, où les données des tables sont stockées. 

   ```
   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;
   ```

   La sortie de cette tâche sera disponible dans les journaux stdout du pilote dans S3 ou CloudWatch, `monitoringConfiguration` selon la configuration.

1. Vous pouvez également créer un fichier JSON avec des paramètres spécifiques pour l'exécution de votre tâche. Exécutez ensuite la commande  start-job-run avec un chemin d'accès au fichier JSON. Pour plus d'informations, consultez la rubrique Soumission d'une tâche. Pour plus d'informations sur la configuration des paramètres d'exécution d'une tâche, consultez la rubrique Options de configuration d'une exécution de tâche. 

   Pour suivre la progression de la tâche ou corriger les échecs, vous pouvez inspecter les journaux chargés sur Amazon S3, CloudWatch les journaux ou les deux. Reportez-vous au chemin du journal dans Amazon S3 à la section [Configurer l'exécution d'une tâche pour utiliser les journaux S3](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks-jobs-CLI.html#emr-eks-jobs-s3) et pour les journaux Cloudwatch à la section [Configurer une exécution de tâche pour utiliser CloudWatch les journaux](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks-jobs-CLI.html#emr-eks-jobs-cloudwatch). Pour voir les CloudWatch journaux dans Logs, suivez les instructions ci-dessous.
   + Ouvrez la CloudWatch console à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).
   + Dans le volet **Navigation**, choisissez **Journaux**. Puis choisissez **Groupes de journaux**.
   + Choisissez le groupe de journaux pour Amazon EMR on EKS, puis consultez les événements du journal chargés.   
![Surveillance à l'aide de CloudWatch journaux](http://docs.aws.amazon.com/fr_fr/emr/latest/EMR-on-EKS-DevelopmentGuide/images/emr-on-eks-monitoring.png)

**Important**  
Les tâches ont une [politique de relance configurée par défaut](jobruns-using-retry-policies.md#retry-config). Pour plus d'informations sur la modification ou la désactivation de la configuration, consultez la rubrique [Utilisation des politiques de relance des tâches](jobruns-using-retry-policies.md).