NoClassDefFound:Scala/xml/metadata

Man*_*mar 5 java scala maven apache-spark

我在Java中运行一个简单的spark程序(IDE:Eclipse Luna,Maven).

我的示例程序是

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());
    }
}
Run Code Online (Sandbox Code Playgroud)

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

线程"main"中的异常java.lang.NoClassDefFoundError:org.apache.spark.ui.jobs.JobsTab中的scala/xml/MetaData(JobsTab.scala:30)org.apache.spark.ui.SparkUI.initialize( SparkUI.scala:50)在iScope.testSpark.main上的org.apache.spark.ui.SparkUI.(SparkUI.scala:61)(testSpark.java:9)

引起:java.lang.ClassNotFoundException:java.lang.ClassLoader.loadClass(未知来源)java.net.URLClassLoader.findClass(未知来源)的scala.xml.MetaData

我的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>
Run Code Online (Sandbox Code Playgroud)

Con*_*Man 11

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

<dependency>
    <groupId>org.scala-lang</groupId>
    <artifactId>scala-xml</artifactId>
    <version>2.11.0-M4</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)