如何排查 Amazon EMR 上 Spark 作业中的阶段故障?

上次更新时间:2020 年 1 月 8 日

如何排查 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 客户端提交的 Spark 作业,原因代码位于在终端显示的异常中。

对于使用 --deploy-mode 集群提交的 Spark 作业,在主节点上运行以下命令,以在 YARN 应用程序日志中查找阶段故障。将 application_id 替换为您 Spark 应用程序的 ID(例如:application_1572839353552_0008)。

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

这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?