Une étape Amazon EMR est toujours en cours d'exécution même si l'application Apache Spark ou YARN correspondante est terminée.
Solution
Utilisez l'une des méthodes suivantes pour résoudre le problème :
- Validez l'état de l'application YARN correspondante, puis terminez l'étape.
- Annulez l'ID de l'étape manuellement à l'aide de l'interface de ligne de commande AWS (AWS CLI).
Validez l'état de l'application YARN, puis terminez l'étape
1. Identifiez applicationId YARN à partir du fichier stderr des journaux d'étapes. Pour plus d'informations, consultez Comment résoudre un échec d'étape dans Amazon EMR ?
2. Connectez-vous au nœud primaire via SSH.
3. Utilisez la commande YARN suivante pour connaître l'état de l'application YARN. Dans la commande suivante, remplacez application_id par l'ID de votre application. Un exemple d'ID d'application est application_1234567891011_001.
yarn application -status application_id
Vous pouvez également utiliser la commande YARN suivante pour répertorier toutes les applications :
yarn application -list -appStates ALL
4. Vérifiez la sortie de la commande précédente pour connaître l'état de l'application.
Application-States: [NEW, NEW_SAVING, SUBMITTED, ACCEPTED, RUNNING, FINISHED, FAILED, KILLED]
Voici un exemple de sortie d'une application qui s'est terminée correctement :
Progress : 100%
State : FINISHED
Final-State : SUCCEEDED
Si la sortie de la commande précédente présente les états FINISHED, FAILED ou KILLED, l'application YARN est terminée.
Si l'état de l'application est NEW, NEW_SAVING, SUBMITTED, ACCEPTED ou RUNNING, l'application YARN est toujours en cours d'exécution. Attendez que l'application soit terminée ou mettez-la hors service pour annuler l'étape.
7. Exécutez la commande suivante pour terminer l'application. Dans la commande suivante, remplacez application_id par l'ID de votre application. Un exemple d'ID d'application est application_1234567891011_001.
yarn application -kill application_id
8. Vérifiez à nouveau le statut de l'étape Amazon EMR après avoir terminé l'application.
Annulation manuelle de l'étape Amazon EMR à l'aide de l'interface de ligne de commande AWS
Remarque : si vous recevez des erreurs lors de l'exécution des commandes AWS CLI, assurez-vous que vous utilisez la version AWS CLI la plus récente.
1. Utilisez la commande describe-step pour afficher l'état de l'étape. Dans la commande suivante, remplacez cluster-id et step-id par les valeurs adaptées à votre cas d'utilisation.
aws emr describe-step --cluster-id j-xxxxxxxxxxxxx --step-ids s-xxxxxxxx
2. Utilisez la commande cancel-steps pour annuler l'étape. Dans la commande suivante, remplacez cluster-id et step-id par les valeurs adaptées à votre cas d'utilisation.
aws emr cancel-steps --cluster-id j-xxxxxxxxxxxxx \
--step-ids s-3M8DXXXXXXXXX \
--step-cancellation-option SEND_INTERRUPT
Pour plus d'informations, consultez Annuler les étapes.