Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.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
Scala 获取失败,无法加载类“;org.slf4j.impl.StaticLoggerBinder”的;使用SparkContext.setLogLevel时_Scala_Apache Spark_Slf4j - Fatal编程技术网

Scala 获取失败,无法加载类“;org.slf4j.impl.StaticLoggerBinder”的;使用SparkContext.setLogLevel时

Scala 获取失败,无法加载类“;org.slf4j.impl.StaticLoggerBinder”的;使用SparkContext.setLogLevel时,scala,apache-spark,slf4j,Scala,Apache Spark,Slf4j,我正在使用SparkContext.setLogLevel(“错误”)更改SparkContext的日志级别,当我运行程序时,我得到: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLogger

我正在使用
SparkContext.setLogLevel(“错误”)
更改SparkContext的日志级别,当我运行程序时,我得到:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details
一切都照常运行,但我想知道这是从哪里来的,因为我没有手动插入任何SLF4J依赖项。 我的POM依赖项部分如下所示(其中
scala.version
为2.11.8,
scala.binaty.version
为2.11):


org.scala-lang
scala图书馆
${scala.version}
假如
org.scala-lang
scala编译器
${scala.version}
假如
org.scalatest
scalatest_${scala.binary.version}
2.2.1
测试
亚马逊网站
aws java sdk
1.10.11
假如
org.apache.spark
spark-core{scala.binary.version}
${spark.version}
假如
org.apache.spark
spark-sql{scala.binary.version}
${spark.version}
假如
org.apache.spark
spark-hive_${scala.binary.version}
${spark.version}
假如
乔达时间
乔达时间
2.9.4
org.scalaj
scalaj-http${scala.binary.version}
2.3.0
net.liftweb
lift-json{scala.binary.version}
3.0-M8
通用编解码器
通用编解码器
1.9

知道是什么原因导致了这种情况,以及我如何修复它吗?

我猜您的一个依赖项有一个特定版本的
slf4j
,它覆盖了Spark使用的版本,从而导致了该错误

我建议您在
pom.xml

例如:

<properties>
    <org.slf4j.version>1.7.5</org.slf4j.version>
</properties>

<dependencies>
    <!-- Logging -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${org.slf4j.version}</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>${org.slf4j.version}</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>${org.slf4j.version}</version>
        <scope>runtime</scope>
    </dependency> 
</dependencies>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
  <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
    <param name="Target" value="System.out"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/> 
    </layout> 
  </appender> 

  <logger name="org.apache.spark">
    <level value="error"/>
  </logger>

  <logger name="org.spark-project">
    <level value="error"/>
  </logger>

  <logger name="org.spark-project">
    <level value="error"/>
  </logger>

  <root> 
    <priority value ="debug" /> 
    <appender-ref ref="console" /> 
  </root>

</log4j:configuration>

您有
log4j.xml
配置文件吗?没有,刚刚发现它存在:)我需要与
pom.xml
在同一个文件夹中吗?来自的基本版本可以吗?只需确保文件位于类路径内。尝试将其置于
resources
目录下。我在回答中更改了
slf4j
版本,尝试将版本替换为
1.7.5
,并检查是否有效。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
  <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
    <param name="Target" value="System.out"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/> 
    </layout> 
  </appender> 

  <logger name="org.apache.spark">
    <level value="error"/>
  </logger>

  <logger name="org.spark-project">
    <level value="error"/>
  </logger>

  <logger name="org.spark-project">
    <level value="error"/>
  </logger>

  <root> 
    <priority value ="debug" /> 
    <appender-ref ref="console" /> 
  </root>

</log4j:configuration>