java.lang.NoClassDefFoundError:scala / reflect / ClassManifest

时间:2013-08-07 09:52:50

标签: scala apache-spark

尝试在spark上运行示例时出错。任何人都可以让我知道我需要对我的pom.xml进行哪些更改才能运行带有spark的程序。

4 个答案:

答案 0 :(得分:6)

目前Spark仅适用于Scala 2.9.3。它不适用于Scala的更高版本。当我尝试运行SparkPi示例并且SCALA_HOME指向2.10.2安装时,我看到了您描述的错误。当我将SCALA_HOME指向2.9.3安装时,事情对我有用。详情here

答案 1 :(得分:3)

您应该将scala-reflect的依赖项添加到您的maven构建中:

<dependency>
    <groupId>org.scala-lang</groupId>
    <artifactId>scala-reflect</artifactId>
    <version>2.10.2</version>
</dependency>

答案 2 :(得分:0)

使用Scala-Redis 2.9客户端(与Scala 2.10不兼容)进入相同的问题,并且包含对scala-reflect的依赖没有帮助。实际上,scala-reflect被打包为自己的jar,但不包括自Scala 2.10.0以来不推荐使用的Class missing(请参阅此thread)。

正确的答案是指向包含此类的Scala的安装(在我的情况下使用Scala-Redis客户端,McNeill的答案帮助。我使用SBT指向Scala 2.9.3并且一切按预期工作)

答案 3 :(得分:0)

就我而言,Kafka的api中出现了错误。我改变了依赖性

<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka_2.9.2</artifactId>
    <version>0.8.1.1</version>
</dependency>

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-streaming-kafka_2.10</artifactId>
    <version>1.6.1</version>
</dependency>

修复了问题。