是否有Spark Log4j属性的参考?

时间:2017-10-16 20:38:58

标签: apache-spark log4j

我一直在尝试找到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***

更具体地说是跟踪网址。可能也有点因为我对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

并且将YARN日志上的所有Spark重定向到一个文件(稍微修改了Thiago共享的链接)。

我遗失的关键事情......

1)我需要包含log4j.logger.CLASS_NAME,我错过了log4j.logger位..

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

一开始它很混乱,但是一旦你把模式打下来就开始有点意义了。

1 个答案:

答案 0 :(得分:0)

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

如果你想在Yarn应用程序中生成自己的日志作为Spark Submit,那么在Spark中生成日志会有点复杂。