Apache spark 如何在windows上以独立模式设置Spark log4j路径?

Apache spark 如何在windows上以独立模式设置Spark log4j路径?,apache-spark,log4j,Apache Spark,Log4j,我已经尝试在hadoop home/conf中将log4j.properties.template更改为log4j.properties,但spark仍然没有接受。我试过了 sparkconf.setlog4j.configuration,.\\config\\log4j.properties 但这也不行。我还尝试添加 -Dlog4j.configuration=.\config\log4j.properties eclipse运行配置,但不起作用。Spark在启动期间仍使用其默认设置 Usi

我已经尝试在hadoop home/conf中将log4j.properties.template更改为log4j.properties,但spark仍然没有接受。我试过了

sparkconf.setlog4j.configuration,.\\config\\log4j.properties

但这也不行。我还尝试添加

-Dlog4j.configuration=.\config\log4j.properties
eclipse运行配置,但不起作用。Spark在启动期间仍使用其默认设置

Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
我还将SPARK_CONF_DIR设置为我的环境变量,以指向SPARK/CONF DIR,但这似乎也不起作用

我在eclipse中以windows独立模式运行此程序

SparkConf sparkConf = new SparkConf().setAppName("Test").setMaster("local[1]")
                .set("log4j.configuration", ".\\config\\log4j.properties");

要检查是否加载了日志4J。请不要尝试使用spark shell进行检查以进行确认。Spark shell内部称Spark submit,其中Spark submit是所有Spark作业的启动平台

复制前注意:第1行显示log4j默认值正在使用

C:\Users\ramisetty\Desktop>spark-shell
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
15/08/07 13:01:10 INFO SecurityManager: Changing view acls to: ramisetty
15/08/07 13:01:10 INFO SecurityManager: Changing modify acls to: ramisetty
将log4j.properties.template复制到log4j.properties后意味着:忽略log4j.defaults,并拾取log4j.properties

C:\Users\ramisetty\Desktop>spark-shell
15/08/07 13:12:37 INFO SecurityManager: Changing view acls to: ramisetty
15/08/07 13:12:37 INFO SecurityManager: Changing modify acls to: ramisetty
更精确地检查


将log4j.rootCategory=INFO,log4j.properties中的console更改为log4j.rootCategory=WARN,console并观察日志中的更改…

要检查是否加载了log4j.properties,请不要尝试使用spark shell进行检查以确认。Spark shell内部称Spark submit,其中Spark submit是所有Spark作业的启动平台

复制前注意:第1行显示log4j默认值正在使用

C:\Users\ramisetty\Desktop>spark-shell
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
15/08/07 13:01:10 INFO SecurityManager: Changing view acls to: ramisetty
15/08/07 13:01:10 INFO SecurityManager: Changing modify acls to: ramisetty
将log4j.properties.template复制到log4j.properties后意味着:忽略log4j.defaults,并拾取log4j.properties

C:\Users\ramisetty\Desktop>spark-shell
15/08/07 13:12:37 INFO SecurityManager: Changing view acls to: ramisetty
15/08/07 13:12:37 INFO SecurityManager: Changing modify acls to: ramisetty
更精确地检查


将log4j.properties中的log4j.rootCategory=INFO,console更改为log4j.rootCategory=WARN,console并观察日志中的更改…

我在使用

sparkconf.set("log4j.configuration", "path to log4j.properties");
解决方法是使用

import org.apache.log4j.PropertyConfigurator

PropertyConfigurator.configure("path to log4j.properties")

我在使用时遇到了类似的问题

sparkconf.set("log4j.configuration", "path to log4j.properties");
解决方法是使用

import org.apache.log4j.PropertyConfigurator

PropertyConfigurator.configure("path to log4j.properties")

稍微扩展@ThatiK非常有用的回答:如果您想从资源而不是普通文件加载日志属性文件,可以执行以下操作:

导入java.util.Properties 导入org.apache.log4j.PropertyConfigurator val props=新属性 props.loadgetClass.getClassLoader.getResourceAsStreamconf/log4j.properties PropertyConfiguration.configureprops
稍微扩展@ThatiK非常有用的回答:如果您想从资源而不是普通文件加载日志属性文件,可以执行以下操作:

导入java.util.Properties 导入org.apache.log4j.PropertyConfigurator val props=新属性 props.loadgetClass.getClassLoader.getResourceAsStreamconf/log4j.properties PropertyConfiguration.configureprops
我遇到了scala代码的问题,而对于log4j.properties正常工作的spark shell没有问题。 由于时间不够,并且考虑到我只在笔记本电脑上做了一点本地实验,不想更改许多小的教学程序,我进行了一次非常肮脏和快速的黑客攻击:修改了jar中的log4j-defaults.properties文件,第一条诊断消息善意地指出:

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

显然,我感到内疚,希望我的孩子永远不会知道这一点:-,但它很快很简单,只在本地处理非生产代码

我有scala代码的问题,log4j.properties正常工作的spark shell没有问题。 由于时间不够,并且考虑到我只在笔记本电脑上做了一点本地实验,不想更改许多小的教学程序,我进行了一次非常肮脏和快速的黑客攻击:修改了jar中的log4j-defaults.properties文件,第一条诊断消息善意地指出:

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

显然,我感到内疚,希望我的孩子永远不会知道这一点:-,但它很快很简单,只在本地处理非生产代码

你在问题中提到hadoop home/conf,我相信它的拼写错误是Spark home/conf你在问题中提到hadoop home/conf,我相信它的输入错误是Spark Home/confis路径本地unix文件位置还是HDFS位置?路径是本地unix文件位置还是HDFS位置?