如果一个mapper占用内存比较多,用hadoop默认配置的话会在一个task node执行多个mapper实例,这样老是因内存不够被kill.一个mapper都不能正常被执行完。
那怎么控制map/reduce的mapper在task中不并发?
找到一个 http://my.oschina.net/cloudcoder/blog/292528?p=1 大致说:
在MR1版本,可通过下面两个参数设置TaskTracker的map和reduce插槽数:
mapred.tasktracker.map.tasks.maximum
mapred.tasktracker.reduce.tasks.maximum
在yarn中用下面的参数控制
yarn.nodemanager.resource.memory-mb
表示该节点上YARN可使用的物理内存总量,默认是8192(MB),注意,如果你的节点内存资源不够8GB,则需要调减小这个值,而YARN不会智能的探测节点的物理内存总量。
yarn.nodemanager.resource.cpu-vcores
表示该节点上YARN可使用的虚拟CPU个数,默认是8,注意,目前推荐将该值设值为与物理CPU核数数目相同。如果你的节点CPU核数不够8个,则需要调减小这个值,而YARN不会智能的探测节点的物理CPU总数。
详细信息见 http://dongxicheng.org/mapreduce-nextgen/hadoop-yarn-memory-cpu-scheduling/
我用的是Hadoop2.6也就是Yarn。具体怎么通过yarn.nodemanager.resource.memory-mb 和yarn.nodemanager.resource.cpu-vcores控制插槽数量呢
见 http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.0.6.0/bk_installing_manually_book/content/rpm-chap1-11.html
里面描述了插槽数是怎么根据memory-mb和cpu-vcores得到的。
公式是:maximum number of containers = min (2*CORES, 1.8*DISKS, (Total available RAM) / MIN_CONTAINER_SIZE)
设置可参照 http://www.tuicool.com/articles/Rf6v6j
另外 http://langyu.iteye.com/blog/910677 这里也有提到。
-----------------------------------------------------------------------------------------------------------------------------------------------
配置文件 配置项名称 配置项值
yarn-site.xml yarn.nodemanager.resource.memory-mb = Containers个数* 每个Container内存
yarn-site.xml yarn.scheduler.minimum-allocation-mb = 每个Container内存
yarn-site.xml yarn.scheduler.maximum-allocation-mb = Containers个数* 每个Container内存
mapred-site.xml mapreduce.map.memory.mb = 每个Container内存
mapred-site.xml mapreduce.reduce.memory.mb = 2 * 每个Container内存
mapred-site.xml mapreduce.map.java.opts = 0.8 * 每个Container内存
mapred-site.xml mapreduce.reduce.java.opts = 0.8 * 2 * 每个Container内存
yarn-site.xml (check) yarn.app.mapreduce.am.resource.mb = 2 * 每个Container内存
yarn-site.xml (check) yarn.app.mapreduce.am.command-opts = 0.8 * 2 * 每个Container内存
from http://www.dataguru.cn/thread-480519-1-1.html
-----------------------------------------------------------------------------------------------------------------------------------------------
深入理解Hadoop YARN中的Container概念 http://dongxicheng.org/mapreduce-nextgen/understand-yarn-container-conc
本文探讨了如何调整YARN配置,特别是`yarn.app.mapreduce.am.command-opts`参数,以控制tasktracker/NodeManagers上的mapper/container数量。内容引用自dataguru.cn论坛和dongxicheng.org的深入分析文章,旨在帮助优化Hadoop MapReduce在YARN上的资源利用。
1万+

被折叠的 条评论
为什么被折叠?



