Comment puis-je résoudre les échecs d’étape dans les tâches Spark sur Amazon EMR ?

Lecture de 2 minute(s)
0

Je souhaite résoudre les échecs d’étape dans les applications Apache Spark sur Amazon EMR.

Brève description

Il est possible que des étapes échouent lorsqu'une tâche Spark rencontre un problème. Les échecs d’étape sont dus à des problèmes matériels, à des configurations Spark incorrectes ou à des problèmes de code. Lorsqu'une étape échoue, les journaux du pilote Spark signalent une exception similaire à l’exception suivante :

« org.apache.spark.SparkException: Job aborted due to stage failure: Task XXX in stage YYY failed 4 times, most repent failure: Lost task XXX in stage YYY (TID ZZZ, ip-xxx-xx-x-xxx.compute.internal, executor NNN): ExecutorLostFailure (executor NNN exited caused by one of the running tasks) Reason: (example-reason) »

Résolution

Identifiez le code de motif pour les tâches Spark que vous soumettez avec le client --deploy-mode

Le code de motif se trouve dans l'exception affichée dans le terminal.

Si vous soumettez la tâche depuis Amazon EMR Steps, le code de motif se trouve dans le fichier stderr de la console Amazon EMR. Vous pouvez également obtenir les journaux stderr d’étape à partir de l'emplacement Amazon Simple Storage Service (Amazon S3) que vous avez spécifié pour la journalisation du cluster. Par exemple, vous pouvez utiliser le chemin de fichier s3://example-log-bucket/example-cluster-id/steps/example-step-id/ pour rechercher les journaux.

Pour identifier les échecs d’étape dans les journaux d'application YARN, exécutez la commande suivante sur le nœud primaire :

yarn logs -applicationId example-application-id | grep "Job aborted due to stage failure" -A 10

Remarque : Remplacez example-application-id par l'ID de votre application Spark.

Vous pouvez obtenir l'application YARN depuis l'emplacement Amazon S3 que vous avez spécifié pour la journalisation du cluster. Par exemple, vous pouvez utiliser le chemin de fichier s3//example-log-bucket/example-cluster-id/containers/example-application-id/. Vous pouvez également obtenir les journaux d'application YARN à partir de YARN ResourceManager dans le conteneur principal de l'application.

Éliminez la cause racine

Après avoir identifié l'exception, utilisez l'un des articles suivants du centre de connaissances AWS pour résoudre le problème :

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 3 mois