Hadoop参数设置中的关系疏理
来源:互联网 发布:圆形扇子淘宝网 编辑:程序博客网 时间:2024/06/07 18:23
I. 核心参数: map reduce.{map|reduce}.memory.mb
1. map reduce.{map|reduce}.memory.mb为Container即Hadoop允许为task分配的内存大小,mapreduce.{map|reduce}.java.opts为node manage为启动task初始化的JVM heap大小, 后者应该小于前者,因为我们还要我Java代码保留内存,一般为其75%
2. mapreduce.{map|reduce}.java.opts与mapreduce.{map|reduce}.child.java.opts为同一个参数,前者是Hadoop 2.x的参数名。其值设置过小则容易造成内存溢出,设置过大则意味着集群负载过大。其参数名对应关系如下:
Hadoop 0.x, 1.x (deprecated) Hadoop 2.x------------------------------- --------------------------mapred.child.java.opts mapred.map.child.java.opts mapreduce.map.java.optsmapred.reduce.child.java.opts mapreduce.reduce.java.opts
3. map reduce.{map|reduce}.memory.mb的大小在yarn.scheduler.minimum-allocation-mb与yarn.scheduler.maximum-allocation-mb之间。
yarn.scheduler.minimum-allocation-mb yarn.scheduler.maximum-allocation-mb
单个容器可申请的最小与最大内存,应用在运行申请内存时不能超过最大值,小于最小值则分配最小值,从这个角度看,最小值有点想操作系统中的页。最小值还有另外一种用途,计算一个节点的最大container数目。
4. yarn.nodemanager.resource.memory-mb为nodemanage节点上可用的最大内存,上述yarn.scheduler.minimum-allocation-mb/yarn.scheduler.maximum-allocation-mb不应该超过此值,该值的默认大小是8G,即使计算机内存不足8G也会按着8G内存来使用。同时此数值用于计算container的数据,即:yarn.nodemanager.resource.memory-mb/yarn.scheduler.minimum-allocation-mb。
5. yarn.nodemanager.vmem-pmem-ratio虚拟内存率,即为task所用内存的倍数。
II.核心参数:mapreduce.map.java.opts
1. mapreduce.task.io.sort.mb应该为mapreduce.map.java.opts/2,同时,mapreduce.reduce.java.opts应该为mapreduce.map.java.opts的2倍。
2. mapreduce.reduce.shuffle.input.buffer.percent控制运行reduce任务的服务器上多少比例的内存用作缓存copy Map产生的属于本reduce处理的那部分数据的Buffer,默认为0.7,mapreduce.reduce.shuffle.parallelcopies控制shuffle过程的并行度,即同时从多少个Map中copy数据。如果这些map同时完成计算并进行copy,则需要满足mapreduce.reduce.shuffle.input.buffer.percent*mapreduce.reduce.shuffle.parallelcopies<1,否则报错。如果这些map不同时完成,超过1没有问题。
III.核心参数:mapreduce.task.io.sort.mb
此参数用于map端排序所用的内存buffer,最小为1M,可以根据实际情况调大,BUG-12005:最大硬性编码不超过2047M。要确定你所用集群所有节点可用内存有你所设置的数目。
mapreduce.task.io.sort.factor为map端merge小文件时,并发有多少stream即同时有多少文件可用于合并,越大则越能减少磁盘IO。排序数据的每个分区大小=io.sort.mb / io.sort.factor,增大此参数可以减少每个分区数据量。如果你发现你的job在map端所用时间多于reduce端,则需要增加map task 的数目并降低此参数设置,降低内存压力。增大此参数配置会增加集群内存压力。
- Hadoop参数设置中的关系疏理
- Hadoop参数设置的关系疏理(2)
- hadoop 参数设置收集
- hadoop streaming 参数设置
- hadoop streaming 编程参数设置
- LR_参数设置和VSUER关系
- Hadoop输入参数设置--AbstractJob简化
- libvlc_media_add_option 函数中的参数设置
- 分区表中的maxvalue参数设置
- libvlc_media_add_option 函数中的参数设置
- ReportBuilder 中的参数设置
- fusioncharts 中的一些参数设置
- 疏理js执行细节
- 图形学教学体系疏理
- hadoop编程----寻找社交网络图中的三角关系
- database link 与global_names参数设置的关系
- JVM的参数设置与OutOfMemoryError异常关系
- hadoop 性能调优 重要参数设置技巧
- ios本地通知
- 自学android 坑2
- Composer PHP的包管理器
- 大数加法+乘法
- Spring源码学习之一 ContextLoaderListener及XmlWebApplicationContext
- Hadoop参数设置中的关系疏理
- springmvc(十一)post乱码
- 高效使用Bitmaps, 神奇的Cache
- exit
- C# List源码分析(一)
- HttpWebRequest和HttpWebResponse类的认识
- spring自定义异常处理
- AS不能发布release版本的解决方案
- VC6.0 设置动态链接库工程生成dll以及lib文件的位置