spark-submit没有用java.lang.ClassNotFoundException

时间:2015-11-11 15:43:44

标签: scala maven apache-spark

我一直在本地使用Scala运行Spark而没有任何问题,然后有一天,它突然无法找到我的课程声明。它与maven编译得很好,当我运行spark-submit时,无论我改变什么,它总是响应如下。我已经删除了所有软件包,只运行了最简单的示例应用程序。任何想法测试什么?似乎路径被某种程度上打破了。 Scala代码运行器版本2.10.4,java版本" 1.7.0_79", Spark版本1.5.1

$ /usr/local/spark-1.5.1/bin/spark-submit --class “SimpleApp” --master local target/simplesparkproject-0.0.1.jar 
java.lang.ClassNotFoundException: “SimpleApp”
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:274)
    at org.apache.spark.util.Utils$.classForName(Utils.scala:173)
    at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:639)
    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:180)
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:205)
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:120)
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

以下是scala脚本的代码段:

import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf

object SimpleApp {  
  def main(args: Array[String]) {
    val conf = new SparkConf().setAppName("Simple Application")
    val sc = new SparkContext(conf)
    println("hello world")
  }
}

这是文件结构:

$ find .
.
./.DS_Store
./pom.xml
./README.txt
./src
./src/main
./src/main/scala
./src/main/scala/SimpleApp.scala
./target
./target/classes
./target/classes/SimpleApp$.class
./target/classes/SimpleApp.class
./target/classes.335735219.timestamp
./target/maven-archiver
./target/maven-archiver/pom.properties
./target/simplesparkproject-0.0.1.jar

3 个答案:

答案 0 :(得分:0)

你试过sbt吗?

我得到了同样的错误,我解决了这个答案:

java.lang.NoClassDefFoundError: org/apache/spark/streaming/twitter/TwitterUtils$ while running TwitterPopularTags

答案 1 :(得分:0)

find .没有显示你的罐子里面有什么。

运行jar tf simplesparkproject-0.0.1.jar以查看JAR文件的内容

答案 2 :(得分:0)

我能够解决问题的唯一方法是重新安装spark然后修改我的.bashrc,不再直接指向Scala。做完这些事后,它按预期工作。