繁体   English   中英

java.lang.NoClassDefFoundError:org / apache / spark / internal / Logging

[英]java.lang.NoClassDefFoundError: org/apache/spark/internal/Logging

我的Spark Streaming程序收到以下错误:线程“主”中的异常java.lang.NoClassDefFoundError:org / apache / spark / internal / Logging我的spark版本是2.1,与集群中运行的版本相同。

我在Internet上找到的信息提示我,旧版本的org.apache.spark.Logging变成了org.apache.spark.internal.Logging的新版本,这阻止了jar包的发现。 但是我pom中引入的依赖项是一个新版本。 为什么找不到jar包?

    <properties>
            <spark.version>2.1.0</spark.version>
            <scala.version>2.11</scala.version>
    </properties>

    <dependencies>
            <dependency>
                    <groupId>org.apache.spark</groupId>
                    <artifactId>spark-core_${scala.version}</artifactId>
                    <version>${spark.version}</version>
            </dependency>
            <dependency>
                    <groupId>org.apache.spark</groupId>
                    <artifactId>spark-streaming_${scala.version}</artifactId>
                    <version>${spark.version}</version>
            </dependency>
            <dependency>
                    <groupId>org.apache.spark</groupId>
                    <artifactId>spark-sql_${scala.version}</artifactId>
                    <version>${spark.version}</version>
            </dependency>
            <dependency>
                    <groupId>org.apache.spark</groupId>
                    <artifactId>spark-hive_${scala.version}</artifactId>
                    <version>${spark.version}</version>
            </dependency>
            <dependency>
                    <groupId>org.apache.spark</groupId>
                    <artifactId>spark-streaming-kafka-0-10_2.11</artifactId>
                    <version>2.1.0</version>
            </dependency>
            <dependency>
                    <groupId>org.apache.hadoop</groupId>
                    <artifactId>hadoop-client</artifactId>
                    <version>2.6.0</version>
            </dependency>
            <dependency>
                    <groupId>org.scala-tools</groupId>
                    <artifactId>maven-scala-plugin</artifactId>
                    <version>2.15.2</version>
            </dependency>
            <dependency>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                    <version>1.2.17</version>
            </dependency>
    </dependencies>
    <build>
            <plugins>
                    <plugin>
                            <groupId>org.scala-tools</groupId>
                            <artifactId>maven-scala-plugin</artifactId>
                            <version>2.15.2</version>
                            <executions>
                                    <execution>
                                            <goals>
                                                    <goal>compile</goal>
                                                    <goal>testCompile</goal>
                                            </goals>
                                    </execution>
                            </executions>
                    </plugin>

                    <plugin>
                            <artifactId>maven-compiler-plugin</artifactId>
                            <version>3.6.0</version>
                            <configuration>
                                    <source>1.8</source>
                                    <target>1.8</target>
                            </configuration>
                    </plugin>
                    <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-surefire-plugin</artifactId>
                            <version>2.19</version>
                            <configuration>
                                    <skip>true</skip>
                            </configuration>
                    </plugin>
            </plugins>
    </build>

我多次遇到java.lang.NoClassDefFoundError。我安装了Spark-2.3.1,所以我认为它也可以在您的情况下工作。

就我而言,java.lang.NoClassDefFoundError:org / apache / spark / internal / Logging应该来自spark-core_2.11-2.3.1.jar,就您而言,它应该来自spark-core_2.11-2.1 .0.jar基于问题中提到的spark和scala版本

当您查看源代码时 ,它使用的是org.slf4j._类。 因此,我的建议是在您的pom中添加此依赖项 ,然后尝试。 对于NoClassDefFoundError,总是最好找到产生此错误的jar,然后尝试回溯它。

假设您在〜/ spark / jars位置中有所有依赖项jar,下面是如何找出导致NoClassDefFound错误的jar。

for i in `ls ~/spark/jars/*.jar`; 
  do 
  jar tvf $i | grep  org/apache/spark/internal/Logging; 
  echo "************** $i ************** "; 
done

如果这解决了您的问题,请告诉我。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM