我一直在本地使用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
答案 0 :(得分:0)
你试过sbt吗?
我得到了同样的错误,我解决了这个答案:
答案 1 :(得分:0)
find .
没有显示你的罐子里面有什么。
运行jar tf simplesparkproject-0.0.1.jar
以查看JAR文件的内容
答案 2 :(得分:0)
我能够解决问题的唯一方法是重新安装spark然后修改我的.bashrc,不再直接指向Scala。做完这些事后,它按预期工作。