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

Ati*_*ish 5 amazon-emr amazon-data-pipeline apache-spark

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

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

在本地机器上,当没有指定如下主类时,这项工作似乎工作得很好:

 ./spark-submit /home/astro/spark-programs/SpotEMR/MyJob.jar
Run Code Online (Sandbox Code Playgroud)

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

任何帮助将不胜感激。

Fre*_*ric 3

实际上,您可以使用 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.htmlstep使用具有主类的EMR 提交 Spark 作业。

该步骤如下所示:

command-runner.jar,spark-submit,--class,org.apache.spark.examples.SparkPi
Run Code Online (Sandbox Code Playgroud)