【问题标题】:Is there a reference of Spark Log4j properties?是否有 Spark Log4j 属性的参考?
【发布时间】:2018-03-28 11:18:51
【问题描述】:

我一直在尝试查找 Spark 的所有 log4j 属性的参考,但很难找到它。我发现了很多例子,人们看到有它的碎片。但我正在尝试查看某个地方是否有包含所有这些的参考。

对于我的特定用例,我正在编写一些代码,通过触发 spark-submit 作业来执行一系列数据转换,然后其他用户可以使用/扩展这些代码。默认情况下,我不需要火花吐出的大部分内容,只需设置 log4j.rootLogger=WARN,stdout 之类的内容就很容易。但是,INFO 中有一些有用的位可以打印到屏幕上。特别是:

org.apache.spark.deploy.yarn.Client (Logging.scala:logInfo(54)) -
     client token: Token { kind: YARN_CLIENT_TOKEN, service:  }
     diagnostics: N/A
     ApplicationMaster host: N/A
     ApplicationMaster RPC port: -1
     queue: ****
     start time: 1508185983070
     final status: UNDEFINED
     tracking URL: ***My tracking URL***
     user: ***User***

更具体地说是跟踪 URL。可能也是由于我对 Log4j 的了解有限,这使得这有点困难。我试过做类似的事情:

org.apache.spark.deploy.yarn.Client=Info

但这似乎不是合法的日志记录属性。有没有办法只在 Spark 中获取那条信息?查看所有可能要设置的日志记录属性是否有技巧?

谢谢!

更新

我能够弄清楚这一点。大部分是因为我不知道 log4j.properties 是如何工作的,但现在有了更好的处理。

您可以为每个类设置记录器和日志级别,并且持续到所有子类。

我将 log4j.properties 更改为如下所示:

log4j.logger.org.apache.spark=INFO, RollingAppender
log4j.additivity.org.apache.spark=false
log4j.logger.org.apache.hadoop=INFO, RollingAppender
log4j.additivity.org.apache.hadoop=false
log4j.logger.org.spark_project.jetty=INFO, RollingAppender
log4j.additivity.org.spark_project.jetty=false
log4j.logger.org.apache.spark.deploy.yarn.Client=INFO, RollingAppender
log4j.additivity.org.apache.spark.deploy.yarn.Client=false

这会将几乎所有 Spark on YARN 日志重定向到一个文件(根据 Thiago 共享的链接稍作修改)。

我错过的关键事情......

1) 我需要包含 log4j.logger.CLASS_NAME,我缺少 log4j.logger 位..

2) 需要 log4j.additivity.CLASS_NAME=false。如果没有这个,它只会将 INFO 记录到默认设置。

一开始这很令人困惑,但一旦你掌握了模式,就会开始变得有点意思。

【问题讨论】:

    标签: apache-spark log4j


    【解决方案1】:

    我建议你看看 Hacker Noon 的这篇文章: https://hackernoon.com/how-to-log-in-apache-spark-f4204fad78a

    如果您想在 Yarn 应用程序中生成自己的日志作为 Spark Submit,在 Spark 中生成日志会稍微复杂一些。

    【讨论】:

    • 谢谢蒂亚戈,这非常有帮助。我已经注意到的一个挑战是除非我设置根记录器,否则日志记录会输出到控制台。它似乎不尊重所有火花噪声的文件日志记录覆盖。其中一些也是纱线的东西,我遇到的部分问题是知道要调整哪个日志设置来控制它。例如,“INFO org.apache.spark.deploy.yarn.Client”出现在我的控制台上。我尝试设置类似 log4j.logger.org.apache.spark.deploy.yarn.Client=WARN 之类的东西,但这似乎没有任何作用。有没有办法解决这个问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-12
    • 2012-03-20
    • 1970-01-01
    • 1970-01-01
    • 2021-11-07
    • 2015-04-21
    • 1970-01-01
    相关资源
    最近更新 更多