我正在尝试使用 AWS 控制台向 AWS EMR 集群提交 Spark 作业。但它失败了:Cannot load main class from JAR
.当我将主类指定为 --class
时,作业运行成功在 Arguments
AWS EMR 控制台中的选项-> 添加步骤。
在本地机器上,当没有指定如下主类时,这项工作似乎工作得很好:
./spark-submit /home/astro/spark-programs/SpotEMR/MyJob.jar
我已使用运行配置将主类设置为 jar。避免将主类传递为
--class
的主要原因是,我必须使用 EMRAcivity 在 AWS Datapipeline 中运行此作业。在 AWS Datapipeline 中,目前无法为正在提交的作业指定主类。任何帮助将不胜感激。
最佳答案
实际上,您可以使用 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 提交 Spark 作业 step
与一个主类。
该步骤如下所示:
command-runner.jar,spark-submit,--class,org.apache.spark.examples.SparkPi
关于apache-spark - AWS EMR Spark : Error: Cannot load main class from JAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48407769/