AWS EMR Spark: Error: Cannot load main class from JAR

AWS EMR Spark: Error: Cannot load main class from JAR

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

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

在本地机器上,当没有指定 main class 时,作业似乎工作得很好,如下所示:

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

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

任何帮助将不胜感激。

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

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

以及 https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-spark-submit-step.html 使用 EMR step 和主要 class.

提交 Spark 作业

该步骤如下所示:

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