首页 文章

Spark作业提交:AWS EMR步骤或命令行spark-submit

提问于
浏览
3

我正在使用yarn作为主集群部署模式运行AWS EMR集群 . 我阅读的所有教程都使用AWS CLI在所谓的“Spark Steps”中运行spark-submit,使用类似于以下的命令:

aws emr add-steps --cluster-id j-2AXXXXXXGAPLF --steps Type=Spark,Name="Spark Program",ActionOnFailure=CONTINUE,Args=[--class,org.apache.spark.examples.SparkPi,/usr/lib/spark/lib/spark-examples.jar,10]

我的教授建议我通过SCP将文件移动到主节点,然后通过SSH运行应用程序来提交我的spark应用程序:

ssh hadoop@ec2-xx-xxx-xxx-xx.compute-1.amazonaws.com

然后我会通过shell将数据文件放入HDFS . 最后我会简单地运行spark-submit:

spark-submit --master yarn --deploy-mode cluster my_spark_app.py my_hdfs_file.csv

通过AWS CLI提交"Spark Step"与通过SSH运行 spark-submit 到主节点之间有什么区别?我的Spark应用程序是否仍然通过从主节点提交作业以分布式方式运行?

1 回答

  • 4

    提交EMR步骤是使用亚马逊的自定义构建步骤提交过程,这是一个相对较轻的包装抽象,它本身称为spark-submit . 从根本上说,没有什么区别,但如果您希望与平台无关(不要锁定到亚马逊),请使用SSH策略或使用Livy尝试更高级的提交策略,如远程提交或我最喜欢的一个 .

相关问题