怎样控制tasktracker/NodeManagers的mapper/container个数问题
来源:互联网 发布:php stringcontains 编辑:程序博客网 时间:2024/05/09 10:26
如果一个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
0 0
- 怎样控制tasktracker/NodeManagers的mapper/container个数问题
- TaskTracker向JobTracker发送心跳时的问题
- Android怎样控制评价小星星的显示(能获取到星星的个数)
- mapreduce中控制mapper的数量
- mapreduce中控制mapper的数量
- mapreduce中控制mapper的数量
- mapreduce中控制mapper的数量
- Hive 中的Mapper个数
- TaskTracker
- TextView控制字的个数
- TaskTracker节点上的HttpServer
- Hadoop的TaskTracker黑名单机制
- Hadoop的TaskTracker黑名单机制
- Hadoop的TaskTracker黑名单机制
- Hadoop的TaskTracker黑名单机制
- Hadoop的TaskTracker黑名单机制
- MapReduce(五): TaskTracker的初始化
- JobTracker与TaskTracker的关系
- 使用比较器让对象进行排序
- 如何将vim改造成强大的代码阅读器
- char[] 与char[9]的不同。 sizeof(char*) != sizeof(char) --20151214
- 黑马程序员---Java基础---Object类
- <学习笔记>jQuery Mobile "data"属性
- 怎样控制tasktracker/NodeManagers的mapper/container个数问题
- 关于android addJavascriptInterface debug有效 release无效
- Android-Application类浅析
- spring的学习笔记
- APPium连接真机输入框中输入的内容与代码中不一致
- 开源项目源码解析-Dagger 源码解析
- C++容易忽略的输入输出特性
- 线上线下模式暗藏专利风险?
- Unity3D 使用异步socket通讯