2015-06-17 127 views
4

我正嘗試使用此快速入門教程以spark submit命令運行此簡單的spark應用程序。 http://spark.apache.org/docs/1.2.0/quick-start.html#self-contained-applications。當我嘗試使用spark-1.4.0-bin-hadoop2.6 \ bin> spark-submit -class「 SimpleApp」運行它時--master local [4] C:/.../ Documents/Sparkapp/target/scala- 2.10 /簡單project_2.10-1.0.jar我得到以下異常:未找到Spark-submit類別異常

java.lang.ClassNotFoundException: SimpleApp 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    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.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSub 
mit$$runMain(SparkSubmit.scala:633) 
    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:16 
9) 
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:192) 
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:111) 
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) 
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties 
15/06/17 09:45:11 INFO Utils: Shutdown hook called 

有誰知道如何解決這一問題?任何幫助是極大的讚賞。

+1

「SimpleApp」中有一個空格。這可能是問題所在。 – hveiga

+0

我認爲這就是我的命令提示符顯示它的方式。例如,「:Shutdown hook called」中有一個空格。 –

+2

你可以檢查你的班級名稱嗎?您需要指定完全限定的類名,如下所示:'--class com.my.awesome.perso.project.spark.SimpleApp'。 同時檢查jar的路徑:如果路徑無效,spark-submit不會抱怨丟失的文件,但會默默地忽略任何未找到的jar,並在稍後抱怨找不到類。 – Svend

回答

0

的事情是,我們必須提交類文件對他們,我們要執行或將用作支持文件火花集羣,所以請按照下列步驟 -

  1. 創建的jar文件這個類 - >在eclipse中,你可以將這個類作爲jar文件導出。 - >從命令行

    罐子CF myJar.jar myClass.class

  2. 編輯代碼如下 -

    VAL的JarFile = 「SimpleApp.jar」; #path

    val conf = new SparkConf()。setAppName(「Simple Application」)。setJars(Array(jarFile));

+0

我使用sbt創建了一個可執行的jar文件。我嘗試運行你在我的Spark殼中建議的代碼,但是當我嘗試運行第二行時,它顯示「error:not found:type SparkConf」。任何想法如何解決這個問題? –

+0

你必須導入一個SparkConf()類,在spark-shell上粘貼這一行 - > import org.apache.spark.SparkConf –

1

簡單的解決方案是檢查你的全名,在我的情況下它是main.java.SimpleApp,它工作。謝謝Svend指出,

0

此外,您可以設置「本地」作爲主要本地運行它,更好的發展時期。