我有一个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
请你能回答我!
答案 0 :(得分:4)
错误是由于SparkContext没有停止,这在高于Spark 2.x的版本中是必需的。
应该停止此操作以防止SparkContext.stop()
或sc.stop()
出现此错误。从自己的经验和以下来源获得解决此错误的灵感:Spark Context,Spark 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
我相信这足够了