2016-10-31 39 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