/*为防止处理超大作业时超时,将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占用堆大小)的更多相关文章

  1. hadoop的mapReduce和Spark的shuffle过程的详解与对比及优化

    https://blog.csdn.net/u010697988/article/details/70173104 大数据的分布式计算框架目前使用的最多的就是hadoop的mapReduce和Spar ...

  2. MapReduce:详解Shuffle过程(转)

    /** * author : 冶秀刚 * mail     : dennyy99@gmail.com */ Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解MapRedu ...

  3. MapReduce:详解Shuffle过程

    Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解MapReduce, Shuffle是必须要了解的.我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑, ...

  4. MapReduce:Shuffle过程的流程

    Shuffle过程是MapReduce的核心,Shuffle描述着数据从map task输出到reduce task输入的这段过程. 1.map端

  5. [转]MapReduce:详解Shuffle过程

    Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解MapReduce, Shuffle是必须要了解的.我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑, ...

  6. 【转】MapReduce:详解Shuffle过程

    ——转自:{http://langyu.iteye.com/blog/992916} Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解MapReduce, Shuffle ...

  7. MapReduce:具体解释Shuffle过程

    Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解MapReduce, Shuffle是必需要了解的.我看过非常多相关的资料,但每次看完都云里雾里的绕着,非常难理清大致的逻 ...

  8. MapReduce Shuffle过程

    MapReduce Shuffle 过程详解 一.MapReduce Shuffle过程 1. Map Shuffle过程 2. Reduce Shuffle过程 二.Map Shuffle过程 1. ...

  9. MapReduce shuffle过程剖析及调优

    MapReduce简介 在Hadoop MapReduce中,框架会确保reduce收到的输入数据是根据key排序过的.数据从Mapper输出到Reducer接收,是一个很复杂的过程,框架处理了所有问 ...

随机推荐

  1. android 程序防止被360或者系统给kill掉

    关于如果和防止android 程序防止被360kill掉之后重启的问题,肯定大家也搜索了好多方法,都不好使,对不对,什么增高权限了,什么进程优先级了,这些东西都不是我们可控的,所以有没有一些非常保险的 ...

  2. Android TabActivity之感叹

    (一)前言 在以前一篇帖子讲ams的时候,提了一下TabActivity.当时说它比较特殊就没有下文了,今天重发一篇帖子,跟大家探讨一下TabActivity. 做个假定先: 比如我们最外面的Acti ...

  3. 百练2755 奇妙的口袋 【深搜】or【动规】or【普通递归】or【递推】

    总Time Limit:  10000ms  Memory Limit:  65536kB 有一个奇妙的口袋.总的容积是40,用这个口袋能够变出一些物品,这些物品的整体积必须是40.John如今有n个 ...

  4. Asp.Net mvc筛选器中返回信息中断操作

    在mvc中,使用response.end()或Response.Redirect("url"); 是无法阻止请求继续往下执行的.如果在action中,可以我们可以使用return ...

  5. 线程在WPF中的使用

    项目中可能会有这样的需求,一直获取新的某个数据信息,但仍不影响其他的操作功能,这时就用到了线程,获取新数据放到线程中操作,对其他操作不产生影响,下面就以随机获取数组中项为例解说WPF中使用线程这一实例 ...

  6. MVC的Model层中的一些便签

    由于自己重新接触MVC,所以把Model层里的一些标签给记录下来,方便自己的使用. 这些是自己目前试用过的一些,在以后的工作中我会接着补充进去新的内容

  7. struts2获取request、session、application

    struts2获取request.session.application public class LoginAction extends ActionSupport implements Reque ...

  8. javascript 中寻找性能瓶颈

    1.如果一个段代码很耗时的话你可以注释掉一部分你认为是很耗时的,或者干脆全部注释掉,然后再一点一点的解开. 2.js优化中最主要的还是对dom操作的优化,单纯的js执行时间是很短的,而js和dom之间 ...

  9. Eclipse 运行ant build.xml

    在命令行cmd运行mvn clean install,ant compiler,提示上述信息,是因为 maven的这个插件要求jdk1.6,但是本地电脑环境变量jdk版本为1.7.将JAVA_HOME ...

  10. 把数据库中的null作为条件查询应该用is

    如select * from mbXX where tuijian is null 而不是select * from mbXX where tuijian=null