java - NoClassDefFound : Scala/xml/metadata

标签 java scala maven apache-spark

我正在用 Java(IDE:Eclipse Luna、Maven)运行一个简单的 spark 程序。

我的示例程序是

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaSparkContext;

public class testSpark {
    public static void main(String[] args) {
        SparkConf conf = new SparkConf().setAppName("Testing").setMaster("local");
        JavaSparkContext sc = new JavaSparkContext(conf);
        
        System.out.println(sc.appName());
    }
}

但是我在运行示例程序时遇到错误

Exception in thread "main" java.lang.NoClassDefFoundError:
scala/xml/MetaData  at
  org.apache.spark.ui.jobs.JobsTab.<init>(JobsTab.scala:30)     at
  org.apache.spark.ui.SparkUI.initialize(SparkUI.scala:50)  at
  org.apache.spark.ui.SparkUI.<init>(SparkUI.scala:61)  at
  iScope.testSpark.main(testSpark.java:9) 

Caused by:
  java.lang.ClassNotFoundException: scala.xml.MetaData  at
  java.net.URLClassLoader.findClass(Unknown Source)     at
  java.lang.ClassLoader.loadClass(Unknown Source)

我的pom.xml文件是

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.11</artifactId>
    <version>1.2.1</version>
</dependency>
<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>18.0</version>
    </dependency>
<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-mllib_2.11</artifactId>
    <version>1.2.1</version>
</dependency>

最佳答案

SparkUI 似乎使用了一个 scala 包,请尝试将此 dsependency 添加到您的 pom 文件以将 scala.xml 包放在您的类路径中。

<dependency>
    <groupId>org.scala-lang</groupId>
    <artifactId>scala-xml</artifactId>
    <version>2.11.0-M4</version>
</dependency>

关于java - NoClassDefFound : Scala/xml/metadata,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30049797/

相关文章:

java - java web start应用如何获取管理员权限,需要写入系统目录

java - cucumber junit中的标签继承

java - 从 java 代码调用 javascript(jQuery/Envjs)

scala - 如何在外部 spark shuffle 服务上修复 "Error opening block StreamChunkId"

scala - sc.textFile Scala错误

java - 如何下载和编译SwingX

tomcat - MyFaces tomcat7 :run goal cannot start ProtocolHandler "http-bio-8080"

java - 为什么 https ://username:password@example. com 不起作用?

scala - 如何从列表中获取特定项目?

eclipse - 如何在eclipse中删除maven项目的目标文件夹