Apache spark 火花应用程序崩溃后如何在纱线中保留火花执行器日志

Apache spark 火花应用程序崩溃后如何在纱线中保留火花执行器日志,apache-spark,yarn,cloudera,Apache Spark,Yarn,Cloudera,我正在试图找到最近Spark应用程序在生产中失败的根本原因。当Spark应用程序运行时,我可以检查NodeManager的warn.NodeManager.log-dir属性以获取Spark executor容器日志 容器中有两个正在运行的Spark应用程序的日志 以下是容器日志的视图: drwx--x---3纱线51 Jul 19 09:04应用_1467068598418_0209 drwx--x---5纱线141 Jul 19 09:04应用_1467068598418_0210 但当应用

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

容器中有两个正在运行的Spark应用程序的日志

以下是容器日志的视图: drwx--x---3纱线51 Jul 19 09:04应用_1467068598418_0209 drwx--x---5纱线141 Jul 19 09:04应用_1467068598418_0210

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


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

以下位置有执行器日志

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" 

非常感谢您的回复。我已将日志聚合启用为true。我使用的是Cloudera5.5,我在HDFS中没有任何hadoop/Thread文件夹。如何启用纱线日志记录以在HDFS中保存Spark executor日志。“Spark.eventLog.enabled”、“true”和“Spark.eventLog.dir”hdfs:///user/spark/applicationHistory“通过设置这两个属性,我们可以在Spark History Server中查看执行器日志。