分享

CDH集群调优:内存、Vcores和DRF

fc013 发表于 2016-4-23 16:01:06 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 7 34047
本帖最后由 fc013 于 2016-4-23 16:31 编辑

问题导读:

1.什么是DRF?
2.怎样进行CDH集群调优



DRF和相关参数

DRF: Dominant Resource Fairness,根据CPU和内存公平调度资源。CDH动态资源池默认采用的DRF计划策略。简单的理解就是内存不够的时候,多余的CPU就不会分配任务了,就让他空着;CPU不够的时候,多出来的内存也不会再启动任务了。

理解这个计划策略后,再查看Yarn启动任务时资源相关的参数,发现有以下几个参数可能会产生影响:

  • mapreduce.map.memory.mb,map任务内存,cdh默认1G
  • mapreduce.map.cpu.vcores,map任务虚拟CPU核数,cdh默认1
  • mapreduce.reduce.memory.mb,reduce任务内存,cdh默认1G
  • mapreduce.reduce.cpu.vcores,reduce任务虚拟CPU核数,cdh默认1
  • yarn.nodemanager.resource.memory-mb,容器内存,cdh默认8G
  • yarn.nodemanager.resource.cpu-vcores,容器虚拟CPU核数,cdh默认8,但CM会自动检测内核数并修改,我这里被自动改成了24。


可以看到默认配置下,CPU核数和内存是1:1G的比例来启动任务的。

接着查看了下分配给Yarn的内存,果然是8×15=120G,所以可用内存比可用vcores(360个)比起来就小太多了,导致按照1:1G的比例下最多只能使用120个vcores。

以上只是猜想。

测试
为了证实我的猜想,将yarn.nodemanager.resource.memory-mb调成了16G(咱内存128G,管够)。重启yarn后,再次启动MR,于是有了下图:

2.jpg

可以看到参数调整前,Yarn可用内存为120G,调整后变成了240G;vcores由调整前的120变成了240。至此,证明猜想正确。

所以对于这个集群来说,由于内存为128G,内核为24个,所以完全可以将yarn.nodemanager.resource.memory-mb参数调成24G(后实际调成了96G),这样就能将所有的CPU都利用起来了。

测试结果
yarn.nodemanager.resource.memory-mb为8G时:
Time taken: 3794.17 seconds
Total MapReduce CPU Time Spent: 3 days 10 hours 43 minutes 22 seconds 640 msec
yarn.nodemanager.resource.memory-mb为16G时:
Time taken: 2077.138 seconds
Total MapReduce CPU Time Spent: 3 days 12 hours 55 minutes 43 seconds 210 msec

可以看到确实快了很多很多。(ps:两次跑的任务所用的数据不一样,以免缓存导致第二次跑相同的任务会速度比第一次快,但两次任务所用的数据量差不多,都在650G左右)

其它

查看VCores SQL

[mw_shl_code=sql,true]


SELECT allocated_vcores_cumulative, available_vcores where category=YARN_POOL and serviceName="yarn" and queueName=root


[/mw_shl_code]


查看分配给Yarn的内存 SQL

[mw_shl_code=sql,true]


SELECT allocated_memory_mb_cumulative, available_memory_mb where category=YARN_POOL and serviceName="yarn" and queueName=root


[/mw_shl_code]


当然最简单的查看方式就是在CM的“动态资源池”页面看。




已有(7)人评论

跳转到指定楼层
zhuangmz 发表于 2016-11-20 11:10:34
楼主,这个是配置已经分配给YARN的CPU和内存资源。一般来说,分配给HDFS的CPU和内存又需要多少呢?谢谢
回复

使用道具 举报

johnies 发表于 2016-12-1 15:06:41
好贴。支持支持
回复

使用道具 举报

Eric_赵小晗 发表于 2017-5-23 14:32:52
有没有人来探讨一下静态资源池的划分
回复

使用道具 举报

77925978 发表于 2017-7-20 11:08:17
新人报道,楼主,真正的好人呐!!!!
回复

使用道具 举报

恋枫缩影 发表于 2018-10-10 23:20:48
最近正好搞这个  优化这块需要好好研究下
回复

使用道具 举报

wuyanan1993 发表于 2019-6-17 11:44:37
很好,醍醐灌顶
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条