[英]Zeppelin: java.lang.NoClassDefFoundError: org/apache/spark/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.