分享

UsedContainers RsvdContainers UsedMem RsvdMem NeededMem这些是怎么计算的

ananan36 2015-5-19 09:36:25 发表于 疑问解答 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 12 49778

UsedContainers RsvdContainers UsedMem RsvdMem  NeededMem这些是怎么计算的,我内存只有150G,每次usermem达到neededmem时候就map就跑不动了,这要怎么处理

已有(12)人评论

跳转到指定楼层
xuanxufeng 发表于 2015-5-19 10:22:58
是hadoop2的,在mapreduce的少跑几个,上面是资源池
表示使用了多少资源,还有多少没有使用。
mapreduce跑的过多,资源不够了,自然跑不动了

回复

使用道具 举报

ananan36 发表于 2015-5-19 10:37:37
xuanxufeng 发表于 2015-5-19 10:22
是hadoop2的,在mapreduce的少跑几个,上面是资源池
表示使用了多少资源,还有多少没有使用。
mapreduce ...

我想知道这个是怎么计算出来需要这么多资源的
回复

使用道具 举报

bob007 发表于 2015-5-19 10:43:55
ananan36 发表于 2015-5-19 10:37
我想知道这个是怎么计算出来需要这么多资源的

这个有点复杂了
需要研究下yarn的源码。

下面有些公式,你可以参考下


队列容量=yarn.scheduler.capacity.<queue-path>.capacity/100
队列绝对容量=父队列的 队列绝对容量*队列容量
队列最大容量=yarn.scheduler.capacity.<queue-path>.maximum-capacity/100
队列绝对最大容量=父队列的 队列绝对最大容量*队列最大容量
绝对资源使用比=使用的资源/全局资源
资源使用比=使用的资源/(全局资源 * 队列绝对容量)
最小分配量=yarn.scheduler.minimum-allocation-mb
用户上限=MAX(yarn.scheduler.capacity.<queue-path>.minimum-user-limit-percent,1/队列用户数量)
用户调整因子=yarn.scheduler.capacity.<queue-path>.user-limit-factor
最大提交应用=yarn.scheduler.capacity.<queue-path>.maximum-applications
    如果小于0 设置为(yarn.scheduler.capacity.maximum-applications*队列绝对容量)
单用户最大提交应用=最大提交应用*(用户上限/100)*用户调整因子
AM资源占比(AM可占用队列资源最大的百分比)
    =yarn.scheduler.capacity.<queue-path>.maximum-am-resource-percent
    如果为空,设置为yarn.scheduler.capacity.maximum-am-resource-percent
最大活跃应用数量=全局总资源/最小分配量*AM资源占比*队列绝对最大容量
单用户最大活跃应用数量=(全局总资源/最小分配量*AM资源占比*队列绝对容量)*用户上限*用户调整因子
本地延迟分配次数=yarn.scheduler.capacity.node-locality-delay<code>


yarn详解
http://www.aboutyun.com/thread-7678-1-1.html

回复

使用道具 举报

ananan36 发表于 2015-5-19 10:48:00
bob007 发表于 2015-5-19 10:43
这个有点复杂了
需要研究下yarn的源码。

我资源部不够,能不能用空间来换,慢就慢点
回复

使用道具 举报

bob007 发表于 2015-5-19 10:53:47
ananan36 发表于 2015-5-19 10:48
我资源部不够,能不能用空间来换,慢就慢点

可以优化下yarn
[mw_shl_code=bash,true]<property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>22528</value>
    <discription>每个节点可用内存,单位MB</discription>
  </property>
  
  <property>
    <name>yarn.scheduler.minimum-allocation-mb</name>
    <value>1500</value>
    <discription>单个任务可申请最少内存,默认1024MB</discription>
  </property>
  
  <property>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>16384</value>
    <discription>单个任务可申请最大内存,默认8192MB</discription>
  </property>[/mw_shl_code]



相关内容:

YARN内存使用优化配置



回复

使用道具 举报

ananan36 发表于 2015-5-19 10:58:29
bob007 发表于 2015-5-19 10:53
可以优化下yarn
[mw_shl_code=bash,true]
    yarn.nodemanager.resource.memory-mb

yarn.nodemanager.resource.memory-mb没办法加大,达到物理内存了
回复

使用道具 举报

bob007 发表于 2015-5-19 11:13:32
ananan36 发表于 2015-5-19 10:58
yarn.nodemanager.resource.memory-mb没办法加大,达到物理内存了

不是加大,而是减小一些
回复

使用道具 举报

ananan36 发表于 2015-5-19 12:46:55
bob007 发表于 2015-5-19 11:13
不是加大,而是减小一些

为什么是减小,可用内存不是更小了么
回复

使用道具 举报

tntzbzc 发表于 2015-5-19 15:36:26
ananan36 发表于 2015-5-19 12:46
为什么是减小,可用内存不是更小了么

内存150G已经很大了。
你的集群就像一头牛,待处理的数据就像草

如果你一次塞的草超过了牛的肚子,牛撑死了,所以同样的道理,你的内存就爆了。
所以你要减少一次运行的内存。

回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条