2016-07-19 15 views
0

最新のSparkアプリケーション障害の根本原因を実稼働環境で突き止めようとしています。 Sparkアプリケーションが実行されているときに、NodeManagerのyarn.nodemanager.log-dirプロパティをチェックして、Sparkエグゼキュータのコンテナログを取得できます。Sparkアプリケーションがクラッシュした後、Spark ExecutorログをYarnに保持する方法

容器は両方実行スパークアプリケーションのログを有する

ここでは、コンテナログの図である。 drwx - X --- 3糸の糸51 7月19日9時04 application_1467068598418_0209 drwx - X --- 5糸糸141 Jul 19 09:04 application_1467068598418_0210

しかし、アプリケーションが終了すると、両方のアプリケーションログが自動的に削除されます。私は糸のすべてのログ保持設定などを非常に大きな数に設定しました。しかし、これらのログは、Sparkアプリケーションがクラッシュするとすぐに削除されます。

質問:何らかの理由でSparkアプリケーションがクラッシュした場合、デバッグのために、これらのSparkアプリケーションログをYarnに保持するにはどうすればよいですか。

答えて

1

次の場所には、エグゼキュータログがあります。

HADOOP_USER_NAME=mapred hadoop fs -ls /hadoop/log/yarn/user/USER/logs/APPLICATION_ID 

はまた、次のプロパティを設定します。 - あなたの応答のための

"yarn.log-aggregation-enable","false" 
"spark.eventLog.enabled", "true"  
"spark.eventLog.dir","hdfs:///user/spark/applicationHistory" 
+0

本当にありがとうございました。私はすでにログ集約を有効にしています。私はCloudera 5.5を使用していますが、HDFSにはhadoop/yarnフォルダはありません。 SparkエグゼキュータのログをHDFSに保存するには、どのようにして糸ログを有効にできますか? – Alchemist

+0

"spark.eventLog.enabled"、 "true"、 "spark.eventLog.dir"、 "hdfs:/// user/spark/applicationHistory"これら2つのプロパティを設定することにより、Spark History Serverのエグゼキュータログを見ることができます。 – morfious902002

+0

はい、ありがとうございます。 – Alchemist

関連する問題