如何對 Amazon EMR 上 Spark 任務的階段故障進行疑難排解?

1 分的閱讀內容
0

我想對 Amazon EMR 上 Apache Spark 應用程式中的階段故障進行疑難排解。

簡短描述

在 Spark 中,當處理 Spark 任務出現問題時,就會發生階段故障。這些故障可能是由硬體問題,Spark 組態不正確或程式碼問題引起的。發生階段故障時,Spark 驅動程式日誌會報告類似下列內容的例外狀況:

org.apache.spark.SparkException: Job aborted due to stage failure: Task XXX in stage YYY failed 4 times, most recent 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: ...

解決方法

尋找原因代碼

對於使用 --deploy-mode client 提交的 Spark 任務,原因代碼在終端中顯示的例外狀況中。

對於使用 --deploy-mode cluster 提交的 Spark 任務,請在主節點上執行下列命令,以尋找 YARN 應用程式日誌中的階段故障。將 application_id 取代為您的 Spark 應用程式的 ID (例如,application_1572839353552_0008)。

yarn logs -applicationId application_id | grep  "Job aborted due to stage failure" -A 10

您也可以從應用程式主容器中的 YARN ResourceManager 取得此資訊。

解決根本原因

找到例外狀況之後,使用下列其中一篇文章來解決根本原因:


AWS 官方
AWS 官方已更新 2 年前