Spark-submit没有找到主类,尽管它确实存在于jar文件中

时间:2015-08-06 08:58:09

标签: apache-spark

首先:这是要提交的应用程序jar文件:

$ls -rlta /shared/ysgood/target/yardstick-spark-uber-0.0.1.jar
-rw-r--r--  1 steve  staff  138611565 Aug  6 01:41 /shared/ysgood/target/yardstick-spark-uber-0.0.1.jar

以下是要提交的课程:

01:55:02/ysgood $jar -tvf target/yardstick-spark-uber-0.0.1.jar | grep SparkCoreRDDBenchmark.class
 15091 Thu Aug 06 01:36:30 PDT 2015 org/yardstick/spark/SparkCoreRDDBenchmark.class

以下是提交的尝试:

$spark-submit --master $MASTER --class org.yardstick.spark.SparkCoreRDDBenchmark target/yardstick-spark-uber-0.0.1.jar 

NOTE: SPARK_PREPEND_CLASSES is set, placing locally compiled Spark classes ahead of assembly.
Error: Cannot load main class from JAR 
file:/shared/ysgood/org.yardstick.spark.SparkCoreRDDBenchmark

关于错误:请注意jar的路径不正确:以下

  

/shared/ysgood/org.yardstick.spark.SparkCoreRDDBenchmark

没有意义:它缺少jar文件的路径

  

目标/尺度-火花尤伯杯0.0.1.jar

1 个答案:

答案 0 :(得分:0)

在-class之后,您必须将主类的包放入主类的路径中。因此,请检查代码中的SparkCoreRDDBenchmark类是否在org.yardstick.spark包中。 如果是,那么尝试运行没有Spark的jar,看看是否收到错误无法加载主类。当罐子被创建时,也许存在一些问题。 祝你好运!