【问题标题】:How to retain Spark executor logs in Yarn after Spark application is crashedSpark应用程序崩溃后如何在Yarn中保留Spark executor日志
【发布时间】:2016-07-28 00:01:06
【问题描述】:

我正在尝试找出最近 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 中以进行调试。

【问题讨论】:

    标签: apache-spark hadoop-yarn cloudera


    【解决方案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" 
    

    【讨论】:

    • 非常感谢您的回复。我已经将日志聚合启用为 true。而且我使用的是 Cloudera 5.5,我在 HDFS 中没有任何 hadoop/yarn 文件夹。如何启用 Yarn 日志记录以将 Spark 执行程序日志保存在 HDFS 中。
    • "spark.eventLog.enabled", "true" 和 "spark.eventLog.dir","hdfs:///user/spark/applicationHistory" 通过设置这两个属性我们可以看到执行者登录 Spark History Server。
    猜你喜欢
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-28
    • 1970-01-01
    • 2015-04-12
    相关资源
    最近更新 更多