Pourquoi mon cluster Amazon EMR ne démarre pas et renvoie le message d'erreur « bootstrap action returned a non-zero return code » (L'action d'amorçage a retourné un code de retour différent de zéro) s'affiche ?

Lecture de 3 minute(s)
0

J'ai créé une action d'amorçage personnalisée pour mon cluster Amazon EMR. Le cluster ne peut pas être lancé et l'action d'amorçage renvoie une erreur similaire à la suivante : « Bootstrap action 1 returned a non-zero return code » (L'action d'amorçage 1 a renvoyé un code de retour différent de zéro).

Brève description

Les actions d'amorçage s'exécutent après l'allocation des instances Amazon Elastic Compute Cloud (Amazon EC2) dans le cluster par Amazon EMR. Lorsqu'une action d'amorçage échoue, Amazon EMR résilie l'instance. Pour plus d'informations, consultez la section Présentation du cycle de vie du cluster.

Si l'échec de l'action d'amorçage est dû à une erreur au niveau du script d'amorçage, le cluster ne parvient pas à se lancer. Pour plus d'informations, consultez la section Principes de base de l'action d'amorçage.

Résolution

Pour déterminer pourquoi une action d'amorçage a échoué, consultez les journaux stderr de votre action d'amorçage. Ces journaux se trouvent dans le chemin Amazon Simple Storage Service (Amazon S3) ou LogUri que vous avez configuré précédemment lors de la création du cluster Amazon EMR.

Exemple : s3://example-log-location/example-cluster-id/node/example-instance-id/bootstrap-actions/

Si vous ne pouvez pas déterminer la raison de l'échec du script après avoir examiné les journaux stderr, modifiez votre script pour fournir des informations de débogage supplémentaires. Par exemple, définissez les paramètres -ex dans le script bash. Cela vous permet d'afficher le flux de script bash dans les fichiers journaux de l'action d'amorçage.

#!/bin/bash
set -x -e

Remarque : si vous n'avez pas créé l'action d'amorçage qui a échoué (par exemple, si vous avez créé six actions d'amorçage et que le message d'erreur est « Bootstrap action 7 failed with non-zero exit code » [L'action d'amorçage 7 a échoué avec un code de sortie différent de zéro]), ce message d'erreur indique qu'Amazon EMR n'a pas pu installer certaines applications ou démarrer certains services.

Pour résoudre ce problème, consultez les journaux de provisionnement Amazon EMR. Amazon EMR utilise Puppet pour installer et configurer des applications sur un cluster. Les journaux peuvent fournir des informations sur les erreurs causées lors du provisionnement du cluster.

Vous pouvez accéder à ces journaux sur le cluster ou S3 si vous avez configuré les journaux pour qu'ils soient transmis à S3. Les journaux sont stockés dans /var/log/provision-node/apps-phase/0/example-UUID}/puppet.log sur le disque et s3://example-log-location/example-cluster-id/node/example-instance-id/provision-node/apps-phase/0/{UUID}/puppet.log.gz.


Informations connexes

Utiliser des actions d'amorçage personnalisées

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an