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");
MapReduce优化一(改变切片大小和Shuffle过程Reduce占用堆大小)的更多相关文章
- hadoop的mapReduce和Spark的shuffle过程的详解与对比及优化
https://blog.csdn.net/u010697988/article/details/70173104 大数据的分布式计算框架目前使用的最多的就是hadoop的mapReduce和Spar ...
- MapReduce:详解Shuffle过程(转)
/** * author : 冶秀刚 * mail : dennyy99@gmail.com */ Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解MapRedu ...
- MapReduce:详解Shuffle过程
Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解MapReduce, Shuffle是必须要了解的.我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑, ...
- MapReduce:Shuffle过程的流程
Shuffle过程是MapReduce的核心,Shuffle描述着数据从map task输出到reduce task输入的这段过程. 1.map端
- [转]MapReduce:详解Shuffle过程
Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解MapReduce, Shuffle是必须要了解的.我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑, ...
- 【转】MapReduce:详解Shuffle过程
——转自:{http://langyu.iteye.com/blog/992916} Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解MapReduce, Shuffle ...
- MapReduce:具体解释Shuffle过程
Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解MapReduce, Shuffle是必需要了解的.我看过非常多相关的资料,但每次看完都云里雾里的绕着,非常难理清大致的逻 ...
- MapReduce Shuffle过程
MapReduce Shuffle 过程详解 一.MapReduce Shuffle过程 1. Map Shuffle过程 2. Reduce Shuffle过程 二.Map Shuffle过程 1. ...
- MapReduce shuffle过程剖析及调优
MapReduce简介 在Hadoop MapReduce中,框架会确保reduce收到的输入数据是根据key排序过的.数据从Mapper输出到Reducer接收,是一个很复杂的过程,框架处理了所有问 ...
随机推荐
- 关于linux内存管理
Linux的内存管理主要分为两部分:物理地址到虚拟地址的映射,内核内存分配管理(主要基于slab). 物理地址到虚拟地址之间的映射 1.概念 物理地址(physical address) 用于内存芯 ...
- C#递归搜索指定目录下的文件或目录
诚然可以使用现成的Directory类下的GetFiles.GetDirectories.GetFileSystemEntries这几个方法实现同样的功能,但请相信我不是蛋疼,原因是这几个方法在遇上[ ...
- 关于js跨域
get方式: 称为jsonp,就是js的跨域通信方式,因为知道有些标签可以跨域获取内容,例如img,script,link...,jsonp就是把动态创建一个script标签,然后配置src属性,后台 ...
- Android进程机制
以下资料摘录整理自老罗的Android之旅博客,是对老罗的博客关于Android底层原理的一个抽象的知识概括总结(如有错误欢迎指出)(侵删):http://blog.csdn.net/luosheng ...
- python集合set,frozenset--笔记
<Python3程序开发指南>笔记. python提供了2种内置的集合类型:可变的set类型.固定的frozenset类型. 只有可哈希运算的对象可添加到集合中.可哈希的数据类型:floa ...
- Repeater的ItemDataBound 事件中e.Item.DataItem 的数据类型
1.使用DataSet和DataTable绑定数据源时 DataRowView view = (DataRowView)e.Item.DataItem; 2.DataReader绑定数据源时 Syst ...
- 如何给report自定义page number
问题描述: report在设置分页后会自动分页,但是有默认的page number,现在的问题是有时default page number不能满足我们的需求,此时就需要自定义page number. ...
- 最新 xode shareSDK使用分享
shareSDK使用分享 什么是shareSDK ShareSDK实现第三方登录.分享.关注等功能. 为什么使用 快速,方便 如何使用 (1)官方下载ShareSDK 参照 ...
- Windows 7 64位下解决不能创建Django项目问题
把djingo-admin.py的全路径写出来 在cmd命令行下直接输入python C:\Python27\Scripts\django-admin.py startproject site(sit ...
- Qt5遇到的问题
好久没用Qt了,今天又重新安装了一个,结果遇到不少问题 本机环境:VS2015,Qt5.7 装好后,就新建工程测试了一下,结果无法编译,提示 :-1: error: cannot open C:\Us ...