Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何摆脱;使用Spark';默认的log4j配置文件:org/apache/spark/log4j defaults.properties";消息_Log4j_Apache Spark - Fatal编程技术网

如何摆脱;使用Spark';默认的log4j配置文件:org/apache/spark/log4j defaults.properties";消息

如何摆脱;使用Spark';默认的log4j配置文件:org/apache/spark/log4j defaults.properties";消息,log4j,apache-spark,Log4j,Apache Spark,我正试图压制这个信息 Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties 当我运行我的Spark应用程序时。我已成功重定向信息消息,但此消息仍会继续显示。如果您有任何想法,我们将不胜感激。好的,所以我想出了一个方法。基本上,我最初有自己的log4j.xml,正在使用它,因此我们看到了这个属性。一旦我有了自己的“log4j.properties”文件,这个消息就消失了。更简单的是,你只需c

我正试图压制这个信息

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

当我运行我的Spark应用程序时。我已成功重定向信息消息,但此消息仍会继续显示。如果您有任何想法,我们将不胜感激。

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

更简单的是,你只需
cd SPARK_HOME/conf
然后
mv log4j.properties.template log4j.properties
然后打开
log4j.properties
并将所有
INFO
更改为
ERROR
。此处
SPARK\u HOME
是SPARK安装的根目录


一些人可能使用
hdfs
作为他们的Spark storage后端,并且会发现日志消息实际上是由
hdfs
生成的。要更改此属性,请转到
HADOOP\u HOME/etc/HADOOP/log4j.properties
文件。只需将
hadoop.root.logger=INFO,控制台
更改为
hadoop.root.logger=ERROR,控制台
。再次强调一下,
HADOOP\u HOME
是您的HADOOP安装的根目录。对我来说,这是
/usr/local/HADOOP
如果您将
log4j.properties
文件放在
main/resources
test/resources
下,这种情况也会发生。在这种情况下,从
test/resources
中删除文件并仅使用
main/resources
中的文件可以解决此问题。

使用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

把这个放在你的
资源
目录中,鲍勃是你叔叔

将spark的conf文件夹添加到CLASSPATH变量。@kaushal您是对的,我必须做一些类似的事情,但不完全是您在这里建议的,但我确信如果我按照您的建议做了,这条消息就会消失。谢谢我必须应用这些更改,并将
log4j.properties
复制到
src/main/resources
文件夹中,以获取更改。有趣的是,我想知道您是否重新启动了spark master,如果没有必要的话?不知道,但我可能重新启动了运行spark的SBT。如果您使用Intellij,这就是确切的解决方案。干得好。其他答案对我不起作用。你能告诉我一些细节吗?你是如何使用Spark的默认log4j配置文件的:org/apache/Spark/log4j-defaults.properties。我正在使用Spark 1.6,在Thread cluser上运行作业的。无法确定如何在分布式环境中传递log4j。我有自己的log4j属性文件think独立于本地/分布式的log4j。属性需要存在于类路径中+您需要在那里定义一个根记录器,如
log4j.rootLogger=INFO,console
。请参阅以供参考!您可以将此文件的内容复制到
src/main/resources/log4j.properties
文件中。