我正在使用aws cli在EMR上运行一个火花作业。
我想要的是让服务器启动,运行作业,并终止。
我可以作为一个两步进程(首先启动服务器,然后运行作业)来完成这个任务,但是当我发送一个命令时,我会得到一个错误。
错误:
Error: Cannot load main class from JAR file:/home/hadoop/spark/bin/spark-submit
Run with --help for usage help or --verbose for debug output
Command exiting with ret '1'
所以看起来它找不到jar (或者主类)。我已经设置了纱线集群的主程序,以便它能够在s3上查找jars,并且我100%肯定主类的类路径是正确的。
命令
aws emr create-cluster --name "Test auto run" --release-label emr-5.4.0 \
--applications Name=Spark --ec2-attributes KeyName=key-emr --instance-type m3.xlarge --instance-count 2 \
--log-uri s3://test/emr --steps Type=Spark,Name="Spark Program",ActionOnFailure=CONTINUE,,\
Args=[/home/hadoop/spark/bin/spark-submit,--verbose,--master,yarn-cluster,--class,co.path.test.TestJob,s3://test/test-0.0.1-SNAPSHOT-jar-with-dependencies.jar,\
's3://test/test-messages/1998*','d','s3://test/loaded'] \
--use-default-roles --auto-terminate
控制员说正在执行:
/usr/lib/hadoop/bin/hadoop jar /var/lib/aws/emr/step-runner/hadoop-jars/command-runner.jar spark-submit
/home/hadoop/spark/bin/spark-submit --verbose --master yarn-cluster --class,co.path.test.TestJob s3://test/test-0.0.1-SNAPSHOT-jar-with-dependencies.jar s3://test/test-messages/1998* d s3://test/loaded
我到底搞砸了什么?
发布于 2017-05-03 20:04:48
如果EMR类型是您在step API - step -steps Type=Spark中提到的EMR类型,正如您在STEP的控制器日志中所标识的那样,EMR将添加spark-submit
命令,并且您不需要将/home/hadoop/spark/bin/spark-submit
作为STEP API的参数传递。
这个错误是因为两个火花提交的,其中它是以第二个/home/hadoop/火星/bin/火花-提交作为参数。
请参阅:http://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-spark-submit-step.html
https://stackoverflow.com/questions/43745431
复制相似问题