我正在尝试使用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中,目前无法为正在提交的作业指定主类。
任何帮助将不胜感激。
答案 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