

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.

# Configuration des applications lorsque vous lancez votre cluster Amazon EMR
<a name="emr-plan-software"></a>

Lorsque vous sélectionnez une version logicielle, Amazon EMR utilise une Amazon Machine Image (AMI) avec Amazon Linux pour installer le logiciel que vous choisissez lors du lancement de votre cluster, tel que Hadoop, Spark et Hive. Amazon EMR fournit régulièrement de nouvelles versions, ajoutant de nouvelles fonctionnalités, de nouvelles applications et des mises à jour générales. Nous vous recommandons d'utiliser la version la plus récente pour lancer votre cluster, chaque fois que possible. La dernière version est l'option par défaut lorsque vous lancez un cluster à partir de la console. 

Pour plus d'informations sur les versions d'Amazon EMR et les versions des logiciels disponibles avec chaque version, consultez le [Guide de version Amazon EMR](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/). Pour plus d'informations sur la manière de modifier les configurations par défaut des applications et des logiciels installés sur votre cluster, accédez à la section [Configuration des applications](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html) dans le Guide de mise à jour Amazon EMR. Certaines versions des composants de l'écosystème open source Hadoop et Spark qui sont incluses dans les versions Amazon EMR comportent des correctifs et des améliorations, qui sont documentés dans le [Guide de mise à jour Amazon EMR](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/).

 En plus des logiciels et des applications standard qui peuvent être installés sur votre cluster, vous pouvez utiliser des actions d'amorçage pour installer des logiciels personnalisés. Les actions d'amorçage sont des scripts qui s'exécutent sur les instances lorsque votre cluster est lancé, et qui s'exécutent sur les nouveaux nœuds qui sont ajoutés à votre cluster lorsqu'ils sont créés. Les actions Bootstrap sont également utiles pour appeler des AWS CLI commandes sur chaque nœud afin de copier des objets depuis Amazon S3 vers chaque nœud de votre cluster. 

**Note**  
 Les actions d'amorçage sont utilisées différemment dans Amazon EMR version 4.x et les versions ultérieures. Pour plus d'informations sur ces différences par rapport aux versions 2.x et 3.x de l'AMI Amazon EMR, consultez la section [Différences introduites dans les versions 4.x](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-release-differences.html) dans le Guide de version Amazon EMR. 

# Créez des actions bootstrap pour installer des logiciels supplémentaires avec un cluster Amazon EMR
<a name="emr-plan-bootstrap"></a>

Vous pouvez utiliser une *action d'amorçage* pour installer un logiciel supplémentaire ou personnaliser la configuration des instances de cluster. Les actions d'amorçage sont des scripts qui s'exécutent sur le cluster après le lancement de l'instance par Amazon EMR à l'aide de l'Amazon Machine Image (AMI) Amazon Linux. Les actions d'amorçage s'exécutent avant qu'Amazon EMR n'installe les applications que vous spécifiez lors de la création du cluster et avant que les nœuds de cluster ne commencent le traitement des données. Si vous ajoutez des nœuds à un cluster en cours d'exécution, des actions d'amorçage s'exécutent également sur ces nœuds de la même façon. Vous pouvez créer des actions amorçage personnalisées et les spécifier quand vous créez votre cluster. 

La plupart des actions d'amorçage prédéfinies pour l'AMI Amazon EMR versions 2.x et 3.x ne sont pas prises en charge dans les versions 4.x d'Amazon EMR. Par exemple, `configure-Hadoop` et `configure-daemons` ne sont pas pris en charge dans la version 4.x d'Amazon EMR. La version 4.x d'Amazon EMR propose plutôt cette fonctionnalité à l'origine. Pour plus d'informations sur la façon de migrer les actions d'amorçage des versions 2.x et 3.x de l'AMI Amazon EMR vers la version 4.x d'Amazon EMR, consultez la section [Personnalisation de la configuration des clusters et des applications avec les versions antérieures de l'AMI d'Amazon EMR](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-3x-customizeappconfig.html) dans le Guide de version Amazon EMR.

## Principes de base de l'action d'amorçage
<a name="bootstrapUses"></a>

Les actions d'amorçage s'exécutent en tant qu'utilisateur Hadoop par défaut. Vous pouvez exécuter une action d'amorçage avec des privilèges racine en utilisant `sudo`. 

Toutes les interfaces de gestion d'Amazon EMR prennent en charge les actions de démarrage. Vous pouvez spécifier jusqu'à 16 actions de bootstrap par cluster en fournissant plusieurs `bootstrap-actions` paramètres à partir de la console ou de l'API. AWS CLI

A partir de la console Amazon EMR, vous pouvez en option spécifier une action d'amorçage lors de la création d'un cluster.

Lorsque vous utilisez l'interface de ligne de commande, vous pouvez transmettre des références à des scripts d'action d'amorçage sur Amazon EMR en ajoutant le paramètre `--bootstrap-actions` lorsque vous créez le cluster à l'aide de la commande `create-cluster`.

```
--bootstrap-actions Path="s3://amzn-s3-demo-bucket/filename",Args=[arg1,arg2]
```

Si l'action d'amorçage renvoie un code d'erreur différent de zéro, Amazon EMR le traite comme un échec et résilie l'instance. Si un trop grand nombre d'instances ne réussissent pas leurs actions d'amorçage, alors Amazon EMR arrête le cluster. Si seules quelques instances échouent, Amazon EMR tente de réaffecter les instances ayant échoués et continue. Utilisez le code d'erreur `lastStateChangeReason` du cluster pour identifier les échecs dus à une action d'amorçage.

## Exécuter une action d'amorçage de manière conditionnelle
<a name="emr-bootstrap-runif"></a>

Afin de n'exécuter une action d'amorçage que sur le nœud principal, vous pouvez utiliser une action d'amorçage personnalisée avec une certaine logique pour déterminer si le nœud est principal.

```
#!/bin/bash
if grep isMaster /mnt/var/lib/info/instance.json | grep false;
then        
    echo "This is not master node, do nothing,exiting"
    exit 0
fi
echo "This is master, continuing to execute script"
# continue with code logic for master node below
```

La sortie suivante sera imprimée à partir d'un nœud principal.

```
This is not master node, do nothing, exiting
```

La sortie suivante sera imprimée à partir du nœud principal.

```
This is master, continuing to execute script
```

Pour utiliser cette logique, chargez votre action d'amorçage, y compris le code ci-dessus, dans votre compartiment Amazon S3. Sur le AWS CLI, ajoutez le `--bootstrap-actions` paramètre à l'appel d'`aws emr create-cluster`API et spécifiez l'emplacement de votre script bootstrap comme valeur de`Path`. 

## Actions de fin de tâche
<a name="bootstrap_Shutown"></a>

Un script d'action d'amorçage peut créer une ou plusieurs actions de fin de tâche en écrivant des scripts dans le répertoire `/mnt/var/lib/instance-controller/public/shutdown-actions/`. Lorsqu'un cluster est arrêté, tous les scripts dans ce répertoire sont exécutés en parallèle. Chaque script doit s'exécuter et s'arrêter dans un délai de 60 secondes. 

L'exécution des scripts d'action d'arrêt n'est pas garantie si le nœud s'arrête avec une erreur. 

**Note**  
Lorsque vous utilisez les versions 4.0 et ultérieures d'Amazon EMR, vous devez créer manuellement le répertoire `/mnt/var/lib/instance-controller/public/shutdown-actions/` sur le nœud principal. Ce répertoire n'existe pas par défaut. Toutefois, après avoir été créés, les scripts de ce répertoire s'exécutent néanmoins avant l'arrêt. Pour plus d'informations sur la connexion au nœud principal pour créer des répertoires, consultez [Connectez-vous au nœud principal du cluster Amazon EMR à l'aide de SSH](emr-connect-master-node-ssh.md).

## Utilisation d'actions d'amorçage personnalisées
<a name="bootstrapCustom"></a>

Vous pouvez créer un script personnalisé pour effectuer une action personnalisée d'amorçage. Toutes les interfaces Amazon EMR peuvent faire référence à une action d'amorçage personnalisée.

**Note**  
Pour des performances optimales, nous vous recommandons de stocker les actions d'amorçage personnalisées, les scripts et les autres fichiers que vous souhaitez utiliser avec Amazon EMR dans un compartiment Amazon S3 Région AWS identique à celui de votre cluster.

**Topics**
+ [Ajout d'actions d'amorçage personnalisées](#custom-bootstrap)
+ [Utilisation d'une action d'amorçage personnalisée pour copier un objet depuis Amazon S3 vers chaque nœud](#CustomBootstrapCopyS3Object)

### Ajout d'actions d'amorçage personnalisées
<a name="custom-bootstrap"></a>

------
#### [ Console ]

**Pour créer un cluster avec une action bootstrap avec la console**

1. [Connectez-vous au et ouvrez la AWS Management Console console Amazon EMR à l'adresse /emr. https://console.aws.amazon.com](https://console.aws.amazon.com/emr)

1. Sous **EMR sur EC2** dans le volet de navigation de gauche, choisissez **Clusters**, puis **Créer un cluster**.

1. Sous **Actions d'amorçage**, choisissez **Ajouter** pour spécifier un nom, l'emplacement du script et des arguments facultatifs pour votre action. Sélectionnez **Ajouter une action d'amorçage**.

1. En option, ajoutez d'autres actions d'amorçage.

1. Choisissez toutes les autres options qui s'appliquent à votre cluster. 

1. Pour lancer cluster, choisissez **Créer un cluster**.

------
#### [ CLI ]

**Pour créer un cluster avec une action bootstrap personnalisée à l'aide du AWS CLI**

Lorsque vous utilisez l'action AWS CLI pour inclure un bootstrap, spécifiez le `Path` et `Args` sous forme de liste séparée par des virgules. L'exemple suivant n'utilise pas une liste d'arguments.
+ Pour lancer un cluster avec une action d'amorçage personnalisée, tapez la commande suivante, en la *myKey* remplaçant par le nom de votre paire de clés EC2. Incluez `--bootstrap-actions` en tant que paramètre et spécifiez l'emplacement de votre script d'amorçage sous la forme de `Path`.
  + Utilisateurs Linux, UNIX et Mac OS X :

    ```
    1. aws emr create-cluster --name "Test cluster" --release-label emr-4.0.0 \
    2. --use-default-roles --ec2-attributes KeyName=myKey \
    3. --applications Name=Hive Name=Pig \
    4. --instance-count 3 --instance-type m5.xlarge \
    5. --bootstrap-actions Path="s3://elasticmapreduce/bootstrap-actions/download.sh"
    ```
  + Utilisateurs Windows :

    ```
    1. aws emr create-cluster --name "Test cluster" --release-label emr-4.2.0 --use-default-roles --ec2-attributes KeyName=myKey --applications Name=Hive Name=Pig --instance-count 3 --instance-type m5.xlarge --bootstrap-actions Path="s3://elasticmapreduce/bootstrap-actions/download.sh"
    ```

  Lorsque vous spécifiez le nombre d'instances sans utiliser le paramètre `--instance-groups`, un seul nœud primaire est lancé et les instances restantes sont lancées en tant que nœuds principaux. Tous les nœuds utiliseront le type d'instance spécifié dans la commande.
**Note**  
Si vous n'avez pas encore créé le rôle de service Amazon EMR par défaut et le profil d'instance EC2, tapez `aws emr create-default-roles` pour les créer avant de taper la sous-commande `create-cluster`.

  Pour plus d'informations sur l'utilisation des commandes Amazon EMR dans le AWS CLI, consultez. [https://docs.aws.amazon.com/cli/latest/reference/emr](https://docs.aws.amazon.com/cli/latest/reference/emr)

------

### Utilisation d'une action d'amorçage personnalisée pour copier un objet depuis Amazon S3 vers chaque nœud
<a name="CustomBootstrapCopyS3Object"></a>

Vous pouvez utiliser une action d'amorçage pour copier les objets depuis Amazon S3 vers chaque nœud d'un cluster avant que vos applications ne soient installées. AWS CLI Il est installé sur chaque nœud d'un cluster, de sorte que votre action bootstrap peut appeler des AWS CLI commandes.

L'exemple suivant illustre un simple script d'action d'amorçage qui copie un fichier, `myfile.jar`, depuis Amazon S3 vers un dossier local, `/mnt1/myfolder`, sur chaque nœud de cluster. Le script est enregistré sur Amazon S3 sous le nom de fichier `copymyfile.sh` avec le contenu suivant.

```
#!/bin/bash
aws s3 cp s3://amzn-s3-demo-bucket/myfilefolder/myfile.jar /mnt1/myfolder
```

Lorsque vous lancez le cluster, vous spécifiez le script. L' AWS CLI exemple suivant illustre cela :

```
aws emr create-cluster --name "Test cluster" --release-label emr-7.12.0 \
--use-default-roles --ec2-attributes KeyName=myKey \
--applications Name=Hive Name=Pig \
--instance-count 3 --instance-type m5.xlarge \
--bootstrap-actions Path="s3://amzn-s3-demo-bucket/myscriptfolder/copymyfile.sh"
```