AWS EMR Spark:错误:无法从JAR加载主类

时间:2018-01-23 17:40:50

标签: apache-spark amazon-emr amazon-data-pipeline

我正在尝试使用AWS控制台向AWS EMR集群提交spark作业。但它失败了:

Cannot load main class from JAR。当我在AWS EMR Console中的--class选项中将主类指定为Arguments时,作业成功运行 - >添加步骤。

在本地计算机上,当没有指定主类时,作业似乎完全正常:

 ./spark-submit /home/astro/spark-programs/SpotEMR/MyJob.jar

我已经使用run配置将主类设置为jar。避免将主类作为--class传递的主要原因是,我必须使用EMRAcivity在AWS Datapipeline中运行此作业。在AWS Datapipeline中,目前无法为正在提交的作业指定主类。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

实际上,您可以通过EMRActivity和AWS Datapipeline 传递作业的主类。

请参阅 https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-emractivity.html使用EMRActivity启动step

以及 https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-spark-submit-step.html使用带有主要类别的EMR step提交火花作业。

步骤如下:

command-runner.jar,spark-submit,--class,org.apache.spark.examples.SparkPi