2016-10-31 38 views
1

我尝试按照这里的教程:http://spark.apache.org/docs/latest/quick-start.html#self-contained-applications。使用命令sbt package,我获得一个空罐子。随后的命令:Spark斯卡拉,自包含应用程序中的空罐子

spark-submit --class SimpleApp --master local[4] target/scala-2.11/simple-project_2.11-1.0.jar

结果:

java.lang.ClassNotFoundException: SimpleApp 
     at java.net.URLClassLoader.findClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     at java.lang.Class.forName0(Native Method) 
     at java.lang.Class.forName(Unknown Source) 
     at org.apache.spark.util.Utils$.classForName(Utils.scala:225) 
     at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:693) 
     at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:185) 
     at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:210) 
     at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:124) 
     at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) 

我用作在根目录的int教程中所述,与simple.sbt正确的布局,并在src/scala/SimpleApp.scala的源代码。

我的配置是Windows 10,从他们各自的网站获得Scala,Hadoop,Spark和sbt二进制文件。

回答

0

sbt强制严格的文件夹结构,我忘记了main中间目录。以前我只使用Eclipse,递归扫描src中的所有文件夹。

在目录结构中增加一个中间main文件夹允许编译和运行继续按预期:

src 
    main 
    scala 
     SimpleApp.scala 

我想通了这一点与本文http://www.scala-sbt.org/0.13/docs/Directories.html