Pourquoi une étape Amazon EMR est-elle en cours d'exécution alors que mon application sur le YARN est terminée ?

Lecture de 3 minute(s)
0

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.


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