设为首页 收藏本站
查看: 1031|回复: 0

[经验分享] (转)hadoop yarn 内存相关配置

[复制链接]

尚未签到

发表于 2016-12-10 10:46:17 | 显示全部楼层 |阅读模式
  1.YARN中处理能力的基本单元是什么?
2.什么是保留内存?
3.4到8G Container建议多少M?



DSC0000.gif





在Hadoop2.0中, YARN负责管理MapReduce中的资源(内存, CPU等)并且将其打包成Container. 这样可以精简MapReduce, 使之专注于其擅长的数据处理任务, 将无需考虑资源调度. YARN会管理集群中所有机器的可用计算资源. 基于这些资源YARN会调度应用(比如MapReduce)发来的资源请求, 然后YARN会通过分配Container来给每个应用提供处理能力, Container是YARN中处理能力的基本单元, 是对内存, CPU等的封装.




在Hadoop集群中,平衡内存(RAM)、处理器(CPU核心)和磁盘的使用是至关重要的,合理规划以免某一项引起瓶颈制约。一般的建议是,一块磁盘和一个CPU核心上配置两个Container会达到集群利用率的最佳平衡。


从可用的硬件资源角度看,要调整群集每个节点Yarn和MapReduce的内存配置到合适的数据,应注意以下几个重要的元素:

  • RAM (总内存大小)
  • CORES (CPU核心数)
  • DISKS (磁盘数)
  


Yarn和MapReduce的总的可用内存应考虑到保留的内存。保留的内存是由系统进程和其他Hadoop进程(如Hbase)所需要的内存。
保留内存=保留系统内存+保留HBase内存(如果HBase是在同一个节点)
使用下表确定每个节点的保留的内存:

建议保留的内存


每个节点的内存总量建议保留系统内存建议保留HBase的内存
4 GB1 GB1 GB
8 GB2 GB1 GB
16 GB2 GB2 GB
24 GB4 GB4 GB
48 GB6 GB8 GB
64 GB8 GB8 GB
72 GB8 GB8 GB
96 GB12 GB16 GB
128 GB24 GB24 GB
256 GB32 GB32 GB
512 GB64 GB64 GB
  
下面的计算是确定每个节点的Container允许的最大数量。
#Container数量=min (2*CORES, 1.8*DISKS, (可用内存)/最低Container的大小)
最低Container的大小 这个值是依赖于可用的RAM数量——在较小的存储节点,最小的Container的大小也应较小。下面的表列出了推荐值:


每个节点的总内存建议的最低Container的大小
小于 4 GB256 MB
4 GB 到 8 GB512 MB
8 GB 到 24 GB1024 MB
24 GB 以上2048 MB
  
最后计算的每个Container的内存大小是:

每个Container的内存大小 = max(最小Container内存大小, (总可用内存) /Container数))

根据计算,YARN 和 MapReduce 配置如下:
配置文件配置项设置值
yarn-site.xmlyarn.nodemanager.resource.memory-mb= Container数量 * 每个Container的内存大小
yarn-site.xmlyarn.scheduler.minimum-allocation-mb= 每个Container的内存大小
yarn-site.xmlyarn.scheduler.maximum-allocation-mb= Container数量 * 每个Container的内存大小
mapred-site.xmlmapreduce.map.memory.mb= 每个Container的内存大小
mapred-site.xmlmapreduce.reduce.memory.mb= 2 * 每个Container的内存大小
mapred-site.xmlmapreduce.map.java.opts= 0.8 * 每个Container的内存大小
mapred-site.xmlmapreduce.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的内存大小
  

提醒: 安装完成后, yarn-site.xml 和 mapred-site.xml 的配置文件在安装目录的 /etc/hadoop/文件夹下.

例如:
集群的节点有 12 CPU cores, 48 GB RAM, and 12 磁盘.
预留内存= 6 GB 系统预留 + 8 GB HBase预留
最小Container内存大小 = 2 GB

如果不安装 HBase:
#Container数 = min (2*12, 1.8* 12, (48-6)/2) = min (24, 21.6, 21) = 21
每个Container的内存大小 = max (2, (48-6)/21) = max (2, 2) = 2


ConfigurationValue Calculation
yarn.nodemanager.resource.memory-mb= 21 * 2 = 42*1024 MB
yarn.scheduler.minimum-allocation-mb= 2*1024 MB
yarn.scheduler.maximum-allocation-mb= 21 * 2 = 42*1024 MB
mapreduce.map.memory.mb= 2*1024 MB
mapreduce.reduce.memory.mb= 2 * 2 = 4*1024 MB
mapreduce.map.java.opts= 0.8 * 2 = 1.6*1024 MB
mapreduce.reduce.java.opts= 0.8 * 2 * 2 = 3.2*1024 MB
yarn.app.mapreduce.am.resource.mb= 2 * 2 = 4*1024 MB
yarn.app.mapreduce.am.command-opts= 0.8 * 2 * 2 = 3.2*1024 MB
  
如果安装 Hbase:
#Container数 = min (2*12, 1.8* 12, (48-6-8)/2) = min (24, 21.6, 17) = 17
每个Container的内存大小 = max (2, (48-6-8)/17) = max (2, 2) = 2


配置项配置大小
yarn.nodemanager.resource.memory-mb= 17 * 2 = 34*1024 MB
yarn.scheduler.minimum-allocation-mb= 2*1024 MB
yarn.scheduler.maximum-allocation-mb= 17 * 2 = 34*1024 MB
mapreduce.map.memory.mb= 2*1024 MB
mapreduce.reduce.memory.mb= 2 * 2 = 4*1024 MB
mapreduce.map.java.opts= 0.8 * 2 = 1.6*1024 MB
mapreduce.reduce.java.opts= 0.8 * 2 * 2 = 3.2*1024 MB
yarn.app.mapreduce.am.resource.mb= 2 * 2 = 4*1024 MB
yarn.app.mapreduce.am.command-opts= 0.8 * 2 * 2 = 3.2*1024 MB

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-312296-1-1.html 上篇帖子: 理解Hadoop-Hbase原理与应用小结 下篇帖子: (转)【Hadoop代码笔记】Hadoop作业提交之客户端作业提交
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表