2016-11-29 3 views
1

私はSparkアプリケーションを実行していて、Stagesの1つがFetchFailedExceptionで失敗しました。おおよそ同時に、次のようなログがリソースマネージャのログに表示されました。Resource Managerが「AMリリースコンテナ」操作の成功を報告できるのはいつですか?

<data> <time>,988 INFO org.apache.hadoop.yarn.server.resourcemanager.RMAudtiLogger: User=<user> OPERATION=AM Released Container TARGET=SchedulerApp RESULT=SUCCESS APPID=<appid> CONTAINERID=<containerid> 

私のアプリケーションでは、それよりも多くの糸が割り当てられていましたが、数日間実行されていました。私は、他のアプリケーションが起動し、クラスタを使用したいと思って、Resource Managerが自分のコンテナの1つを強制終了して、他のアプリケーションにリソースを提供してしまうことが予想されます。

私の前提を確認したり、リソースマネージャから出力されるログメッセージを説明するドキュメントを教えてもらえますか?

編集: それは私が実行している糸のバージョンを助けている場合OPERATION=AM Released Containerについて2.6.0-cdh5.4.9

答えて

0

INFOメッセージがorg.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSAppAttemptからです。コードを曖昧に理解すると、コンテナのリリースが成功し、SparkアプリケーションのApplicationMasterのコンテナが正常に終了したことが原因であることがわかります。

私はちょうど同様の質問Why Spark application on YARN fails with FetchFailedException due to Connection refused?に答えました(あなたはほぼ重複していました)。

FetchFailedException例外(ShuffleDependencyの場合)がシャッフルブロックをフェッチできなかった場合に例外がスローされます。

(シャッフルブロックのBlockManager付き)executorが失われているので、FetchFailedExceptioncauseは通常ルート(すなわち、もはや利用可能)による:

  1. OutOfMemoryErrorは別名(をスローされる可能性OOMed)または未処理の例外があります。
  2. Sparkアプリケーションのエグゼキュータを持つワーカーを管理するクラスタマネージャ。 YARNはコンテナのメモリ制限を適用し、過度のメモリ使用量のためにエグゼキュータを強制終了することになりました。

あなたは(あなたのケースである)のHadoop YARNためyarn logs -applicationIdなどの履歴サーバまたはクラスタ固有のツールをスパーク、ウェブUIを使用してスパークアプリケーションのログを確認する必要があります。

解決策は、通常、Sparkアプリケーションのメモリを調整することです。

関連する問題