【问题标题】:How to get rid of "Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties" message?如何摆脱“使用 Spark 的默认 log4j 配置文件:org/apache/spark/log4j-defaults.properties”消息?
【发布时间】:2015-06-18 20:01:06
【问题描述】:

我正在尝试隐藏消息

Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties

当我运行我的 Spark 应用程序时。我已成功重定向 INFO 消息,但此消息不断出现。任何想法将不胜感激。

【问题讨论】:

  • 将 spark 的 conf 文件夹添加到 CLASSPATH 变量中。
  • @kaushal 你是对的,我必须做一些类似但不完全的事情,你在这里建议什么,但我敢肯定,如果我按照你的建议去做,这条消息就会消失。谢谢!

标签: log4j apache-spark


【解决方案1】:

更简单的是你只需cd SPARK_HOME/conf 然后mv log4j.properties.template log4j.properties 然后打开log4j.properties 并将所有INFO 更改为ERROR。这里SPARK_HOME是你的spark安装的根目录。

有些人可能使用hdfs 作为他们的Spark 存储后端,并且会发现日志消息实际上是由hdfs 生成的。要更改此设置,请转到 HADOOP_HOME/etc/hadoop/log4j.properties 文件。只需将hadoop.root.logger=INFO,console 更改为hadoop.root.logger=ERROR,console。 HADOOP_HOME 再次是您的 hadoop 安装的根目录,对我来说这是 /usr/local/hadoop。

【讨论】:

  • 我必须应用这些更改并将 log4j.properties 复制到 src/main/resources 文件夹才能获取更改。
  • 有趣,我想知道如果没有必要,您是否重新启动了 spark master?
  • 不知道,但我可能确实重启了运行 Spark 的 SBT。
【解决方案2】:

好的,所以我想出了一个方法来做到这一点。所以基本上,我最初有自己的 log4j.xml,它正在被使用,因此我们看到了这个属性。一旦我有了自己的“log4j.properties”文件,这条消息就消失了。

【讨论】:

  • 如果您使用的是 Intellij,这就是确切的解决方案。做得好。其他答案对我不起作用。
  • 你能否给我一些细节,你是如何摆脱使用 Spark 的默认 log4j 配置文件的:org/apache/spark/log4j-defaults.properties。我正在使用 spark 1.6,在 yarn 上运行作业集群。无法弄清楚如何在分布式环境中传递 log4j。我有自己的 log4j 属性文件
  • 认为独立于本地/分布式 log4j.properties 需要存在于类路径中+您需要在那里定义一个根记录器,例如log4j.rootLogger=INFO, console。参考github.com/apache/spark/blob/…!
【解决方案3】:

如果您将log4j.properties 文件放在main/resources 和test/resources 下,也会发生这种情况。在这种情况下,删除 test/resources 中的文件并仅使用 main/resources 中的文件可以解决此问题。

【讨论】:

【解决方案4】:

上面的答案都没有对我使用 SBT 有用。原来你需要明确在你的log4j.properties中定义一个appender,比如:

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{HH:mm:ss} %-5p %c{1}:%L - %m%n

log4j.rootLogger=WARN, stdout
log4j.logger.org.apache.spark=WARN, stdout
log4j.logger.com.yourcompany=INFO, stdout

把它放在你的resources 目录中,Bob 就是你的叔叔!

【讨论】:

    猜你喜欢
    • 2020-12-26
    • 2021-02-15
    • 2020-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多