Apache spark slf4j-log4j12.jar和log4j-over-slf4j.jar在同一路径中,而依赖关系在Maven POM中得到解决

Apache spark slf4j-log4j12.jar和log4j-over-slf4j.jar在同一路径中,而依赖关系在Maven POM中得到解决,apache-spark,slf4j,apache-drill,log4j,Apache Spark,Slf4j,Apache Drill,Log4j,我正在尝试使用spark 2.1.0访问drill。我已经把下面的pom文件放在我的 项目但在编译代码时,我发现以下错误。当我移除钻孔依赖项时,一切正常 我知道spark已经有了“slf4j-log4j12.jar”,并且在添加钻取依赖项时,它带来了“log4j-over-slf4j.jar”,但是如果我从类路径中删除它们中的任何一个,代码就不起作用了 非常感谢您的帮助 POM文件:- <?xml version="1.0" encoding="UTF-8"?> <proje

我正在尝试使用spark 2.1.0访问drill。我已经把下面的pom文件放在我的 项目但在编译代码时,我发现以下错误。当我移除钻孔依赖项时,一切正常

我知道spark已经有了“slf4j-log4j12.jar”,并且在添加钻取依赖项时,它带来了“log4j-over-slf4j.jar”,但是如果我从类路径中删除它们中的任何一个,代码就不起作用了

非常感谢您的帮助

POM文件:-

 <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.eric</groupId>
    <artifactId>testingFrameWork</artifactId>
    <version>1.0.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.source>1.8</maven.compiler.source>

        <fasterxml.jackson>2.2.3</fasterxml.jackson>
        <jersey>1.9</jersey>
        <joda.version>1.8</joda.version>
        <surefire.version>2.17</surefire.version>
        <scalatest.version>1.0</scalatest.version>
        <shade.version>2.2</shade.version>
        <junit.version>4.11</junit.version>

        <spark.version>1.6.0</spark.version>
        <hbase.version>1.0.0-cdh5.5.2</hbase.version>
        <hadoop.version>2.6.0-cdh5.5.2</hadoop.version>
        <avro.version>1.7.6-cdh5.5.2</avro.version>
        <kafka.version>0.8.2.0-kafka-1.4.0</kafka.version>
        <flume.version>1.6.0-cdh5.5.2</flume.version>
        <parquet.version>1.5.0-cdh5.5.2</parquet.version>
        <solr.version>4.10.3-cdh5.5.2</solr.version>
        <maven-scala-plugin.version>2.15.2</maven-scala-plugin.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.11</artifactId>
            <version>2.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_2.11</artifactId>
            <version>2.1.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-hive_2.11</artifactId>
            <version>2.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-compiler</artifactId>
            <version>2.11.8</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.8-dmr</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/org.apache.drill.exec/drill-jdbc -->
      <dependency>
            <groupId>org.apache.drill.exec</groupId>
            <artifactId>drill-jdbc</artifactId>
            <version>1.9.0</version>
      </dependency>


    </dependencies>

    <build>
        <plugins>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>${maven.compiler.source}</source>
                    <target>${maven.compiler.target}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${surefire.version}</version>
            </plugin>
            <plugin>
                <groupId>org.scala-tools</groupId>
                <artifactId>maven-scala-plugin</artifactId>
                <version>${maven-scala-plugin.version}</version>
                <executions>
                    <execution>
                        <id>compile</id>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                        <phase>compile</phase>
                    </execution>
                    <execution>
                        <id>test-compile</id>
                        <goals>
                            <goal>testCompile</goal>
                        </goals>
                        <phase>test-compile</phase>
                    </execution>
                    <execution>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>${shade.version}</version>
            </plugin>
            <plugin>
                <groupId>external.atlassian.jgitflow</groupId>
                <artifactId>jgitflow-maven-plugin</artifactId>
                <version>1.0-m5.1</version>
                <configuration>
                    <noDeploy>true</noDeploy>
                    <noReleaseBuild>true</noReleaseBuild>
                    <noFeatureBuild>true</noFeatureBuild>
                    <noHotfixBuild>true</noHotfixBuild>
                    <enableFeatureVersions>false</enableFeatureVersions>
                    <releaseBranchVersionSuffix>RC</releaseBranchVersionSuffix>
                    <allowSnapshots>false</allowSnapshots>
                    <pushReleases>true</pushReleases>
                    <pushHotfixes>true</pushHotfixes>
                    <pushFeatures>true</pushFeatures>
                </configuration>
            </plugin>
        </plugins>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.scalatest</groupId>
                    <artifactId>scalatest-maven-plugin</artifactId>
                    <version>${scalatest.version}</version>
                    <configuration>
                        <junitxml>.</junitxml>
                    </configuration>
                    <executions>
                        <execution>
                            <id>test</id>
                            <goals>
                                <goal>test</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>



</project>

4.0.0
com.eric
测试框架
1.0.0-SNAPSHOT
1.8
1.8
2.2.3
1.9
1.8
2.17
1
2.2
4.11
1.6.0
1.0.0-cdh5.5.2
2.6.0-cdh5.5.2
1.7.6-cdh5.5.2
0.8.2.0-kafka-1.4.0
1.6.0-cdh5.5.2
1.5.0-cdh5.5.2
4.10.3-cdh5.5.2
2.15.2
org.apache.spark
spark-core_2.11
2.1.0
org.apache.spark
spark-sql_2.11
2.1.0
org.apache.spark
spark-hive_2.11
2.1.0
org.scala-lang
scala编译器
2.11.8
mysql
mysql连接器java
8.0.8-dmr
org.apache.drill.exec
钻jdbc
1.9.0
org.apache.maven.plugins
maven编译器插件
3.5.1
${maven.compiler.source}
${maven.compiler.target}
org.apache.maven.plugins
maven surefire插件
${surefire.version}
org.scala-tools
maven scala插件
${maven scala plugin.version}
编译
编译
编译
测试编译
测试编译
测试编译
过程资源
编译
org.apache.maven.plugins
maven阴影插件
${shade.version}
external.atlassian.jgitflow
JgitFlowMaven插件
1.0-m5.1
真的
真的
真的
真的
假的
钢筋混凝土
假的
真的
真的
真的
org.scalatest
scalatest maven插件
${scalatest.version}
.
测试
测试
错误:-

    SLF4J: Detected both log4j-over-slf4j.jar AND slf4j-log4j12.jar on the class path, preempting StackOverflowError. 
SLF4J: See also http://www.slf4j.org/codes.html#log4jDelegationLoop for more details.
Exception in thread "main" java.lang.ExceptionInInitializerError
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at org.slf4j.impl.Log4jLoggerFactory.<clinit>(Log4jLoggerFactory.java:48)
    at org.slf4j.impl.StaticLoggerBinder.<init>(StaticLoggerBinder.java:72)
    at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:45)
    at org.apache.spark.internal.Logging$class.initializeLogging(Logging.scala:111)
    at org.apache.spark.internal.Logging$class.initializeLogIfNecessary(Logging.scala:102)
    at org.apache.spark.SparkContext.initializeLogIfNecessary(SparkContext.scala:73)
    at org.apache.spark.internal.Logging$class.log(Logging.scala:46)
    at org.apache.spark.SparkContext.log(SparkContext.scala:73)
    at org.apache.spark.internal.Logging$class.logInfo(Logging.scala:54)
    at org.apache.spark.SparkContext.logInfo(SparkContext.scala:73)
    at org.apache.spark.SparkContext.<init>(SparkContext.scala:184)
    at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2313)
    at org.apache.spark.sql.SparkSession$Builder$$anonfun$6.apply(SparkSession.scala:868)
    at org.apache.spark.sql.SparkSession$Builder$$anonfun$6.apply(SparkSession.scala:860)
    at scala.Option.getOrElse(Option.scala:121)
    at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:860)
    at SimpleApp$.delayedEndpoint$SimpleApp$1(SarojCode.scala:20)
    at SimpleApp$delayedInit$body.apply(SarojCode.scala:10)
    at scala.Function0$class.apply$mcV$sp(Function0.scala:34)
    at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
    at scala.App$$anonfun$main$1.apply(App.scala:76)
    at scala.App$$anonfun$main$1.apply(App.scala:76)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
    at scala.App$class.main(App.scala:76)
    at SimpleApp$.main(SarojCode.scala:10)
    at SimpleApp.main(SarojCode.scala)
Caused by: java.lang.IllegalStateException: Detected both log4j-over-slf4j.jar AND slf4j-log4j12.jar on the class path, preempting StackOverflowError. See also http://www.slf4j.org/codes.html#log4jDelegationLoop for more details.
    at org.apache.log4j.Log4jLoggerFactory.<clinit>(Log4jLoggerFactory.java:51)
    ... 29 more

Process finished with exit code 1
SLF4J:在类路径上检测到log4j-over-SLF4J.jar和SLF4J-log4j12.jar,抢占StackOverflowerError。
SLF4J:另见http://www.slf4j.org/codes.html#log4jDelegationLoop 更多细节。
线程“main”java.lang.ExceptionInInitializeError中出现异常
位于java.lang.Class.forName0(本机方法)
位于java.lang.Class.forName(Class.java:264)
位于org.slf4j.impl.Log4jLoggerFactory(Log4jLoggerFactory.java:48)
位于org.slf4j.impl.StaticLoggerBinder。(StaticLoggerBinder.java:72)
位于org.slf4j.impl.StaticLoggerBinder(StaticLoggerBinder.java:45)
位于org.apache.spark.internal.Logging$class.initializeLogging(Logging.scala:111)
在org.apache.spark.internal.Logging$class.initializeLogif上(Logging.scala:102)
在org.apache.spark.SparkContext.initializeLogif上(SparkContext.scala:73)
位于org.apache.spark.internal.Logging$class.log(Logging.scala:46)
位于org.apache.spark.SparkContext.log(SparkContext.scala:73)
位于org.apache.spark.internal.Logging$class.logInfo(Logging.scala:54)
位于org.apache.spark.SparkContext.logInfo(SparkContext.scala:73)
位于org.apache.spark.SparkContext(SparkContext.scala:184)
位于org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2313)
位于org.apache.spark.sql.SparkSession$Builder$$anonfun$6.apply(SparkSession.scala:868)
位于org.apache.spark.sql.SparkSession$Builder$$anonfun$6.apply(SparkSession.scala:860)
位于scala.Option.getOrElse(Option.scala:121)
位于org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:860)
在SimpleApp$.delayedEndpoint$SimpleApp$1处(SarojCode.scala:20)
在SimpleApp$delayedInit$body.apply(SarojCode.scala:10)
在scala.Function0$class.apply$mcV$sp处(Function0.scala:34)
在scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)中
位于scala.App$$anonfun$main$1.apply(App.scala:76)
位于scala.App$$anonfun$main$1.apply(App.scala:76)
位于scala.collection.immutable.List.foreach(List.scala:381)
位于scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
位于scala.App$class.main(App.scala:76)
位于SimpleApp$.main(SarojCode.scala:10)
位于SimpleApp.main(SarojCode.scala)
引起b
<dependency>
    <groupId>org.apache.drill.exec</groupId>
    <artifactId>drill-jdbc</artifactId>
    <version>1.9.0</version>
</dependency>
<dependency>
    <groupId>org.apache.drill.exec</groupId>
    <artifactId>drill-jdbc</artifactId>
    <version>1.9.0</version>
    <exclusions>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>log4j-over-slf4j</artifactId>
        </exclusion>
    </exclusions>
</dependency>