我试图找到生产中最近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应用程序崩溃时,如何将这些Spark应用程序日志保留在Yarn中进行调试。
以下位置具有执行程序日志。
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"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句