使用spark-submit而不使用--class参数

时间:2014-07-23 21:46:18

标签: scala apache-spark

我是Spark和Scala的新手,但希望这不是一个多余/愚蠢的问题 - 我还没有找到答案。

我使用sbt-assembly工具编译了一个胖jar,而MANIFEST文件包含了行MainClass: com.package.MyMainClass。但是,spark-submit仍然要求我使用--class参数来定义主类。从this Spark configuration page开始,我收集spark-submit从conf/spark-defaults.conf文件中获取其配置详细信息。我的其他属性(spark.masterspark.app.name)似乎在没有命令行参数的情况下加载得很好,但我还没有找到一种方法来指定项目的主要类这个文件。我已经随机尝试了spark.class main.classclass之类的内容,但显然在黑暗中刺伤并不顺利。

有什么想法吗?当spark-submit MyJar.jar如此干净时,我想避免使用非常难看的脚本将应用程序部署到集群。感谢。

1 个答案:

答案 0 :(得分:2)

查看org.apache.spark.deploy.SparkSubmitArguments.scala here的源代码,看起来它应该会获取您的Main-Class清单属性:

mainClass = jar.getManifest.getMainAttributes.getValue("Main-Class")

我没有对此进行测试,但尝试将'MainClass'替换为'Main-Class'。