在EMR中运行并行作业时Spark提交配置

时间:2017-11-26 23:20:57

标签: apache-spark parallel-processing emr amazon-data-pipeline

我们目前正在使用Datapipeline的HadoopActivity任务在EMR集群上运行并行Spark作业。默认情况下,较新版本的EMR集群将spark动态分配设置为true,这将根据负载增加/减少所需的执行程序数。那么我们是否需要设置任何其他属性以及spark-submit,例如:内核数量,执行程序内存等最好让EMR集群动态处理它?<​​/ p>

1 个答案:

答案 0 :(得分:0)

这总是取决于您的应用程序的工作方式。我可以举一个很好的例子说明我在这里的工作方式。一般来说,对于数据科学家来说,他们使用默认配置,并且由于他们在这里使用Jupyter来运行他们的模型,因此效果非常好。我们设置的唯一可能对您有用的是conf spark.dynamicAllocation.minExecutors,这允许为该作业设置至少两个或一个工作者。不要没有任何遗嘱执行人。这就是我们对数据科学家的所作所为。

但是,EMR对您选择的每种类型的机器都有一种特定类型的配置。因此,一般来说,它针对最常见的活动进行了优化。但有时你需要根据你的要求进行更改,如果你需要更多的内存和更少的内核来处理更好的数据。