MapReduce优化一(改变切片大小和Shuffle过程Reduce占用堆大小)
/*为防止处理超大作业时超时,将io时间设为1小时
*
<property>
<name>dfs.datanode.socket.write.timeout</name>
<value>6000000</value>
</property>
<property>
<name>dfs.socket.timeout</name>此参数已经废弃,使用dfs.client.socket-timeout
<value>6000000</value>
</property>
*
*/
Configuration conf = new Configuration();
conf.set("dfs.client.block.write.replace-datanode-on-failure.enable", "false");
conf.set("dfs.datanode.socket.write.timeout", "7200000");
//Configuration.deprecation: dfs.socket.timeout is deprecated. Instead, use dfs.client.socket-timeout
conf.set("dfs.client.socket-timeout", "7200000");
//Default 0.7, JavaHeapSize在总的堆大小中shuffle占内存的百分比
conf.set("mapreduce.reduce.shuffle.input.buffer.percent", "0.6");
//Default 0.25, a single shuffle use max memory percent
conf.set("mapreduce.reduce.shuffle.memory.limit.percent", "0.10");
//当遇到超大文件时,将默认的128MB改为最小切分块为256MB。mapreduce.min.split.size属性已废弃,使用新API属性mapreduce.input.fileinputformat.split.minsize/FileInputFormat.setMinInputSplitSize(job, 268435456);
conf.set("mapreduce.input.fileinputformat.split.minsize", "268435456");
//当遇到超大文件时,将默认的128MB改为最大切分块为512MB。mapreduce.max.split.size属性已废弃,使用新API属性mapreduce.input.fileinputformat.split.maxsize/FileInputFormat.setMaxInputSplitSize(job, 536870912);
conf.set("mapreduce.input.fileinputformat.split.maxsize", "536870912");;
//每个Map任务分配的内存使用量,默认1024mb
conf.set("mapreduce.map.memory.mb", "5120");
//每个Reduce任务分配的内存使用量,默认1024mb
conf.set("mapreduce.reduce.memory.mb", "5120");
/**对MapReduce应用分配jvm堆内存使用,如果单个Map处理数据量较大报: GC overhead limit exceeded则通过如下设置解决*/
//对map最大的资源限制
conf.set("mapreduce.map.memory.mb","5000");
//对map中对jvm child设置最大的堆大小
conf.set("mapreduce.map.java.opts","-Xmx5000m");
//对reduce最大的资源限制
conf.set("mapreduce.reduce.memory.mb","5000");
//对reduce中对jvm child设置最大的堆大小
conf.set("mapreduce.reduce.java.opts","-Xmx5000m");
最新文章
- btn-default
- SQL Server逻辑读、预读和物理读
- 转:SSL协议详解
- 如何让格斗游戏的横版过关(2) Cocos2d-x 2.0.4
- JavaEE JavaBean 反射、内省、BeanUtils
- Web Service进阶(四)WebService注解
- Oracle EBS BOM模块常用表结构
- dataguard从库移动数据文件
- H5新增属性contenteditable(不用JS,实现div模拟textarea高度自增长)
- BeautifulSoup下Unicode乱码解决
- Redis JdkSerializationRedisSerializer,stringRedisSerializer,ProtoBuf 体积,性能简单比较.
- 【Python】图形界面
- [工具]cmd命令大全
- 【转】vue.js表单校验详解
- SDL播放音频的时候发现SDL_OpenAudioDevice打开一直失败
- 吴裕雄 实战python编程(2)
- 全基因组测序 从头测序(de novo sequencing) 重测序(re-sequencing)
- DIOCP
- procedure of object 对象的函数指针
- 03以太网帧结构(链路层 IEEE802.3)