

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 à partir du AWS CLI
<a name="gs-cli"></a>

Commencez à utiliser EMR Serverless à l' AWS CLI aide des commandes with pour créer une application, exécuter des tâches, vérifier le résultat de l'exécution des tâches et supprimer vos ressources.

## Étape 1 : Création d'une application EMR sans serveur
<a name="gs-application-cli"></a>

Utilisez la [https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_CreateApplication.html](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_CreateApplication.html)commande pour créer votre première application EMR Serverless. Vous devez spécifier le type d'application et l'étiquette de publication Amazon EMR associés à la version de l'application que vous souhaitez utiliser. Le nom de l'application est facultatif.

------
#### [ Spark ]

Pour créer une application Spark, exécutez la commande suivante.

```
aws emr-serverless create-application \
    --release-label emr-6.6.0 \
    --type "SPARK" \
    --name my-application
```

------
#### [ Hive ]

Pour créer une application Hive, exécutez la commande suivante. 

```
aws emr-serverless create-application \
    --release-label emr-6.6.0 \
    --type "HIVE" \
    --name my-application
```

------

Notez l'ID de l'application renvoyé dans la sortie. Vous utiliserez cet identifiant pour démarrer la candidature et lors de la soumission des offres d'emploi, appelé ensuite`application-id`.

Avant de passer à[Étape 2 : Soumettre une tâche exécutée à votre application EMR Serverless](#gs-job-run-cli), assurez-vous que votre application a atteint l'`CREATED`état correspondant à l'[https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_GetApplication.html](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_GetApplication.html)API.

```
aws emr-serverless get-application \
    --application-id application-id
```

EMR Serverless crée des travailleurs pour répondre aux tâches que vous demandez. Par défaut, ils sont créés à la demande, mais vous pouvez également spécifier une capacité pré-initialisée en définissant le `initialCapacity` paramètre lors de la création de l'application. Vous pouvez également limiter la capacité maximale totale qu'une application peut utiliser avec le `maximumCapacity` paramètre. Pour en savoir plus sur ces options, consultez [Configuration d'une application lorsque vous travaillez avec EMR Serverless](application-capacity.md).

## Étape 2 : Soumettre une tâche exécutée à votre application EMR Serverless
<a name="gs-job-run-cli"></a>

Votre application EMR Serverless est maintenant prête à exécuter des tâches.

------
#### [ Spark ]

Dans cette étape, nous utilisons un PySpark script pour calculer le nombre d'occurrences de mots uniques dans plusieurs fichiers texte. Un compartiment S3 public en lecture seule stocke à la fois le script et le jeu de données. L'application envoie le fichier de sortie et les données du journal depuis le moteur d'exécution Spark vers le compartiment S3 que vous avez créé `/output` et les `/logs` répertoires qu'il contient. 

**Pour exécuter une tâche Spark**

1. Utilisez la commande suivante pour copier le script d'exemple que nous allons exécuter dans votre nouveau compartiment.

   ```
   aws s3 cp s3://us-east-1.elasticmapreduce/emr-containers/samples/wordcount/scripts/wordcount.py s3://amzn-s3-demo-bucket/scripts/
   ```

1. Dans la commande suivante, remplacez-le par `application-id` l'ID de votre application. `job-role-arn`Remplacez-le par l'ARN du rôle d'exécution dans lequel vous l'avez créé[Création d'un rôle d'exécution de tâches](getting-started.md#gs-runtime-role). *`job-run-name`*Remplacez-le par le nom que vous souhaitez appeler votre tâche exécutée. Remplacez toutes les `amzn-s3-demo-bucket` chaînes par le compartiment Amazon S3 que vous avez créé et ajoutez-les `/output` au chemin. Cela crée un nouveau dossier dans votre compartiment dans lequel EMR Serverless peut copier les fichiers de sortie de votre application.

   ```
   aws emr-serverless start-job-run \
       --application-id application-id \
       --execution-role-arn job-role-arn \
       --name job-run-name \
       --job-driver '{
           "sparkSubmit": {
             "entryPoint": "s3://amzn-s3-demo-bucket/scripts/wordcount.py",
             "entryPointArguments": ["s3://amzn-s3-demo-bucket/emr-serverless-spark/output"],
             "sparkSubmitParameters": "--conf spark.executor.cores=1 --conf spark.executor.memory=4g --conf spark.driver.cores=1 --conf spark.driver.memory=4g --conf spark.executor.instances=1"
           }
       }'
   ```

1. Notez l'ID d'exécution de la tâche renvoyé dans la sortie. `job-run-id`Remplacez-le par cet ID dans les étapes suivantes.

------
#### [ Hive ]

Dans ce didacticiel, nous créons une table, insérons quelques enregistrements et exécutons une requête d'agrégation de comptes. Pour exécuter la tâche Hive, créez d'abord un fichier contenant toutes les requêtes Hive à exécuter dans le cadre d'une tâche unique, téléchargez le fichier sur S3 et spécifiez ce chemin S3 lorsque vous démarrez la tâche Hive.

**Pour exécuter une tâche Hive**

1. Créez un fichier appelé `hive-query.ql` contenant toutes les requêtes que vous souhaitez exécuter dans votre tâche Hive.

   ```
   create database if not exists emrserverless;
   use emrserverless;
   create table if not exists test_table(id int);
   drop table if exists Values__Tmp__Table__1;
   insert into test_table values (1),(2),(2),(3),(3),(3);
   select id, count(id) from test_table group by id order by id desc;
   ```

1. `hive-query.ql`Téléchargez-le dans votre compartiment S3 à l'aide de la commande suivante.

   ```
   aws s3 cp hive-query.ql s3://amzn-s3-demo-bucket/emr-serverless-hive/query/hive-query.ql
   ```

1. Dans la commande suivante, remplacez-le `application-id` par votre propre ID d'application. `job-role-arn`Remplacez-le par l'ARN du rôle d'exécution dans lequel vous l'avez créé[Création d'un rôle d'exécution de tâches](getting-started.md#gs-runtime-role). Remplacez toutes les `amzn-s3-demo-bucket` chaînes par le compartiment Amazon S3 que vous avez créé, puis ajoutez `/output` et `/logs` au chemin. Cela crée de nouveaux dossiers dans votre compartiment, dans lesquels EMR Serverless peut copier les fichiers de sortie et les fichiers journaux de votre application.

   ```
   aws emr-serverless start-job-run \
       --application-id application-id \
       --execution-role-arn job-role-arn \
       --job-driver '{
           "hive": {
             "query": "s3://amzn-s3-demo-bucket/emr-serverless-hive/query/hive-query.ql",
             "parameters": "--hiveconf hive.log.explain.output=false"
           }
       }' \
       --configuration-overrides '{
         "applicationConfiguration": [{
           "classification": "hive-site",
             "properties": {
               "hive.exec.scratchdir": "s3://amzn-s3-demo-bucket/emr-serverless-hive/hive/scratch",
               "hive.metastore.warehouse.dir": "s3://amzn-s3-demo-bucket/emr-serverless-hive/hive/warehouse",
               "hive.driver.cores": "2",
               "hive.driver.memory": "4g",
               "hive.tez.container.size": "4096",
               "hive.tez.cpu.vcores": "1"
               }
           }],
           "monitoringConfiguration": {
             "s3MonitoringConfiguration": {
               "logUri": "s3://amzn-s3-demo-bucket/emr-serverless-hive/logs"
              }
           }
       }'
   ```

1. Notez l'ID d'exécution de la tâche renvoyé dans la sortie. `job-run-id`Remplacez-le par cet ID dans les étapes suivantes.

------

## Étape 3 : passez en revue le résultat de votre exécution
<a name="gs-output-cli"></a>

L'exécution de la tâche doit généralement prendre 3 à 5 minutes. 

------
#### [ Spark ]

Vous pouvez vérifier l'état de votre tâche Spark à l'aide de la commande suivante.

```
aws emr-serverless get-job-run \
    --application-id application-id \
    --job-run-id job-run-id
```

Lorsque la destination de votre journal est définie sur`s3://amzn-s3-demo-bucket/emr-serverless-spark/logs`, vous pouvez trouver les journaux de cette tâche spécifique exécutée sous`s3://amzn-s3-demo-bucket/emr-serverless-spark/logs/applications/application-id/jobs/job-run-id`. 

Pour les applications Spark, EMR Serverless envoie les journaux d'événements toutes les 30 secondes vers le `sparklogs` dossier de destination de votre journal S3. Lorsque votre tâche est terminée, les journaux d'exécution de Spark pour le pilote et les exécuteurs sont téléchargés dans des dossiers nommés de manière appropriée par le type de travailleur, tels que `driver` ou`executor`. La sortie de la PySpark tâche est transférée vers. `s3://amzn-s3-demo-bucket/output/`

------
#### [ Hive ]

Vous pouvez vérifier l'état de votre tâche Hive à l'aide de la commande suivante.

```
aws emr-serverless get-job-run \
    --application-id application-id \
    --job-run-id job-run-id
```

Lorsque la destination de votre journal est définie sur`s3://amzn-s3-demo-bucket/emr-serverless-hive/logs`, vous pouvez trouver les journaux de cette tâche spécifique exécutée sous`s3://amzn-s3-demo-bucket/emr-serverless-hive/logs/applications/application-id/jobs/job-run-id`. 

Pour les applications Hive, EMR Serverless télécharge en permanence le pilote Hive dans le dossier et `HIVE_DRIVER` les journaux de tâches Tez dans `TEZ_TASK` le dossier de votre destination de journal S3. Une fois que le job a atteint son `SUCCEEDED` état, le résultat de votre requête Hive est disponible à l'emplacement Amazon S3 que vous avez spécifié dans le `monitoringConfiguration` champ de`configurationOverrides`. 

------

## Étape 4 : nettoyer
<a name="gs-cleanup-cli"></a>

Lorsque vous aurez terminé de travailler sur ce didacticiel, pensez à supprimer les ressources que vous avez créées. Nous vous recommandons de libérer les ressources que vous n'avez pas l'intention de réutiliser.

### Supprimer votre candidature
<a name="delete-application-cli"></a>

Pour supprimer une application, utilisez la commande suivante. 

```
aws emr-serverless delete-application \
    --application-id application-id
```

### Supprimer votre bucket de log S3
<a name="delete-s3-bucket-cli"></a>

Pour supprimer votre compartiment de journalisation et de sortie S3, utilisez la commande suivante. Remplacez `amzn-s3-demo-bucket` par le nom réel du compartiment S3 créé dans[Préparer le stockage pour EMR Serverless](getting-started.md#gs-prepare-storage)..

```
aws s3 rm s3://amzn-s3-demo-bucket --recursive
aws s3api delete-bucket --bucket amzn-s3-demo-bucket
```

### Supprimer votre rôle d'exécution des tâches
<a name="delete-runtime-role-cli"></a>

Pour supprimer le rôle d'exécution, détachez la politique du rôle. Vous pouvez ensuite supprimer à la fois le rôle et la politique.

```
aws iam detach-role-policy \
    --role-name EMRServerlessS3RuntimeRole \
    --policy-arn policy-arn
```

Pour supprimer le rôle, utilisez la commande suivante.

```
aws iam delete-role \
    --role-name EMRServerlessS3RuntimeRole
```

Pour supprimer la politique attachée au rôle, utilisez la commande suivante.

```
aws iam delete-policy \
    --policy-arn policy-arn
```

Pour d'autres exemples d'exécution de tâches Spark et Hive, consultez [Utilisation des configurations Spark lorsque vous exécutez des tâches EMR sans serveur](jobs-spark.md) et[Utilisation de configurations Hive lorsque vous exécutez des tâches EMR sans serveur](jobs-hive.md).