如何在Spark应用程序崩溃后保留Spark中的Spark执行程序日志

时间:2016-07-19 18:57:04

标签: apache-spark yarn cloudera

我试图找到生产中最近Spark应用程序失败的根本原因。当Spark应用程序运行时,我可以检查NodeManager的yarn.nodemanager.log-dir属性以获取Spark执行程序容器日志。

容器包含正在运行的Spark应用程序的日志

以下是容器日志的视图: drwx - x --- 3纱纱51 Jul 19 09:04 application_1467068598418_0209 drwx - x --- 5纱纱141 Jul 19 09:04 application_1467068598418_0210

但是当应用程序被杀死时,应用程序日志都会自动删除。我已将Yarn中的所有日志保留设置等设置为非常大的数字。但是一旦Spark应用程序崩溃,这些日志就会被删除。

问题:当Spark应用程序因某种原因崩溃时,我们如何在Yarn中保留这些Spark应用程序日志以进行调试。

1 个答案:

答案 0 :(得分:2)

以下位置包含执行程序日志。

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"