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年前