/*为防止处理超大作业时超时,将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. Linux crontab 命令详解(含配置文件路径)

    编辑/etc/crontab 文件配置cron cron 服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服 ...

  2. List 去处自定义重复对象方法

    list泛型集合去除重复项,对于单一的某个字段非常简单,但是对于一些自定义要求的还需自定义规则.例子代码: /************绑定乘客信息********/ List<RT.Model. ...

  3. Chapter 4. Using the Gradle Command-Line 使用gradle命令行

    This chapter introduces the basics of the Gradle command-line. You run a build using the gradle comm ...

  4. c# 字符串编码问题

    一. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte). ...

  5. 利用反射的特性将DataReader对象转化为List集合

    问题:将SqlDataReader对象转换为List<T>集合 思路: 1,利用反射的特性得到对应实体Model的公共属性 Type type = typeof(T); PropertyI ...

  6. svg text文字居中

    <text x="100" y="100" text-anchor="middle" dominant-baseline=" ...

  7. mysql的distinct理解

    select distinct id,name from route where update_time>=''; 上面的sql语句的逻辑是两条记录的id,name只要有一个不一样,就算不一样. ...

  8. ARGB和RGB

    ARGB 一种色彩模式,也就是RGB色彩模式附加上Alpha(透明度)通道,常见于32位位图的存储结构. ARGB---Alpha,Red,Green,Blue. Alpha-图像通道 如果图形卡具有 ...

  9. __dopostback的用法 . 编辑

    在.NET中,所有的服务器控件提交到服务器的时候,都会调用__doPostBack这个函数,所以灵活运用这个函数对于我们的帮助还是很大的. 比如,在我们写程序的时候经常会需要动态的生成一些控件,最简单 ...

  10. Dragger简介

    转自:http://www.apkbus.com/blog-705730-60435.html 什么是依赖注入 如果我们想要注入依赖,首先要理解依赖是什么.简单的说,依赖是我们代码中两个模块之间的耦合 ...