2016-11-27 148 views
2

我有一個應用程序Spark-scala,我試圖顯示一條簡單的消息「Hello my app」。當我編譯它通過sbt編譯它是好的,我也運行它通過運行它很好,我顯示了我的消息成功,但他顯示一個錯誤;像這樣:無法從JAR文件加載主類

Hello my application! 
16/11/27 15:17:11 ERROR Utils: uncaught error in thread SparkListenerBus, stopping SparkContext 
     java.lang.InterruptedException 
    ERROR ContextCleaner: Error in cleaning thread 
    java.lang.InterruptedException 
    at org.apache.spark.ContextCleaner$$anon$1.run(ContextCleaner.scala:67) 
    16/11/27 15:17:11 INFO SparkUI: Stopped Spark web UI at http://10.0.2.15:4040 
    [success] Total time: 13 s, completed Nov 27, 2016 3:17:12 PM 
    16/11/27 15:17:12 INFO DiskBlockManager: Shutdown hook called 

我不明白,沒關係,沒關係! 此外,當我嘗試運行加載後我的文件罐子,他dispaly也是錯誤的:

我的命令行的樣子:

spark-submit "appfilms" --master local[4] target/scala-2.11/system-of-recommandation_2.11-1.0.jar 

和錯誤是這樣的:

Error: Cannot load main class from JAR file:/root/projectFilms/appfilms 
Run with --help for usage help or --verbose for debug output 
16/11/27 15:24:11 INFO Utils: Shutdown hook called 

請你能回答我!

+1

您是否嘗試過做錯什麼錯誤消息?在火花提交上使用--help或--verbose來查看日誌必須說的內容。 –

+0

AFAIK它應該與'--jars'選項一起提交,例如...'$ SPARK_HOME/bin/spark-submit --driver-class-path你的jar [s] --jars你的jar [s]' –

+0

你可以試試這個'spark-submit \ --verbose --master local [4] \ --class yourclass yourjar.jar' –

回答

2

錯誤是由於SparkContext沒有停止的事實,這在高於Spark 2.0的版本中是必需的。 這應該停止以通過SparkContext.stop()或sc.stop()來防止此錯誤。解決這個錯誤的靈感是從自己的經驗和以下來源中獲得的:Spark Context,Spark Listener Bus error

相關問題