无法从JAR文件加载主类

时间:2016-11-27 15:34:18

标签: scala hadoop apache-spark sbt

我有一个Spark-scala应用程序,我试图显示一条简单的消息" Hello my App"。当我通过sbt编译它编译它很好,我也是通过它运行它运行它很好,我显示我的消息成功,但他显示错误;像这样:

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

我无法理解,这很好或不行! 此外,当我尝试在运行后加载我的文件jar时,他也显示错误:

我的命令行看起来像:

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

请你能回答我!

2 个答案:

答案 0 :(得分:4)

错误是由于SparkContext没有停止,这在高于Spark 2.x的版本中是必需的。 应该停止此操作以防止SparkContext.stop()sc.stop()出现此错误。从自己的经验和以下来源获得解决此错误的灵感:Spark ContextSpark Listener Bus error

答案 1 :(得分:0)

您忘记使用--class参数 spark-submit“ appfilms” --master local [4] target / scala-2.11 / system-of-recommandation_2.11-1.0.jar

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

请注意,如果appfilm属于任何软件包,请不要忘记添加软件包名称,如下所示 packagename.appfilms

我相信这足够了