在Hadoop YARN中映射和减少任务内存设置

时间:2016-01-02 22:54:28

标签: hadoop mapreduce yarn

在YARN上,Reduce任务的最大内存是否需要比MapReduce应用程序中的Map任务更多?如下......

mapreduce.map.memory.mb = 7
mapreduce.reduce.memory.mb = 14
mapreduce.map.java.opts = 0.8 * 7 = 5,6
mapreduce.reduce.java.opts = 0.8 * 2 * 7 = 11,2

1 个答案:

答案 0 :(得分:0)

没有硬性规定,减少任务记忆应该大于地图任务记忆。

默认情况下,mapreduce.map.memory.mbmapreduce.reduce.memory.mb都设置为1,024 MB。这些值有一个上限和下限,分别由yarn.scheduler.minimum-allocation-mb(默认值为1024 MB)和yarn.scheduler.maximum-allocation-mb(默认值为8,192 MB)强加。

但是,通常建议减速器内存设置高于映射器内存设置。原因可能是,减速器的数量小于映射器的数量,并且减速器汇总了来自“ ”的数据。地图集的数量。此外,您可以通过调整reducer的内存配置参数来优化shuffle和排序阶段,例如:mapreduce.reduce.shuffle.input.buffer.percent(用于存储映射器输出的堆的百分比)。

Cloudera建议将任务记忆设置减少为地图任务记忆的两倍:http://www.cloudera.com/content/www/en-us/documentation/enterprise/latest/topics/cdh_ig_yarn_tuning.html

您还可以在此处检查各种类型的AWS群集的这些设置:http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/TaskConfiguration_H2.html。您可以观察到mapreduce.reduce.memory.mb始终大于或等于mapreduce.map.memory.mb