如何在emr上设置并行减速机的数量?

xu3bshqb  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(264)

我用mrjob在emr上运行一个作业;我使用的是ami版本2.4.7和hadoop版本1.0.3。
我想为一个作业指定减速器的数量,因为我想为下一个作业提供更高的并行性。在阅读本网站上其他问题的答案时,我想我应该设置这些参数,所以我做了: mapred.reduce.tasks=576 mapred.tasktracker.reduce.tasks.maximum=24 然而,第二种选择似乎没有被采纳:emr和hadoop接口都报告有576个reduce任务要运行,但是集群的容量仍然保持在72(r3.8xlarge示例)。
我甚至看到这个选项已经设定好了 var/lib/hadoop/mapred/taskTracker/hadoop/jobcache/job_XXX/job.xml:<property><name>mapred.tasktracker.reduce.tasks.maximum</name><value>24</value></property> . 但是,只有默认数量(9)的实际减速器同时运行。
为什么emr不接受该选项?或者有没有不同的方法来强制在一个示例上使用更多的减速器?

uhry853o

uhry853o1#

在hadoop1中,每个节点的map和reduce插槽都是在守护程序级别设置的,因此如果值发生更改,则需要重新启动tasktracker守护程序。
在emr上,每个示例类型的默认插槽数可以在以下位置找到:http://docs.aws.amazon.com/elasticmapreduce/latest/developerguide/hadoopmemorydefault_h1.0.3.html.
为了更改这些默认值,您需要使用如下引导操作 configure-hadoop 修改 mapred.tasktracker.reduce.tasks.maximum 在hadoop守护进程启动之前。看到了吗http://docs.aws.amazon.com/elasticmapreduce/latest/developerguide/emr-plan-bootstrap.html#predefinedbootstrapactions_configurehadoop 更多细节。
示例(需要修改以匹配用于创建集群的任何接口):

s3://<region>.elasticmapreduce/bootstrap-actions/configure-hadoop -m mapred.tasktracker.reduce.tasks.maximum=24

请注意,如果更改每个节点的插槽数,请务必进行调整 mapred.child.java.opts 为可用内存量提供合理的上限内存量。

相关问题