zoukankan      html  css  js  c++  java
  • MapReduce优化参数

    资源相关参数

    /*在MapReduce应用程序中配置就可以生效*/

    (1) mapreduce.map.memory.mb: 

        一个Map Task可使用的内存上限(单位:MB),默认为1024。如果Map Task实际使用的资源量超过该值,则会被强制杀死。

    (2) mapreduce.reduce.memory.mb:

        一个Reduce Task可使用的资源上限(单位:MB),默认为1024。如果Reduce Task实际使用的资源量超过该值,则会被强制杀死。

    (3) mapreduce.map.cpu.vcores

        每个Maptask可用的最多cpu core数目, 默认值: 1

    (4) mapreduce.reduce.cpu.vcores:

        每个Reducetask可用最多cpu core数目默认值: 1

    (5) mapreduce.map.java.opts: 

    Map TaskJVM参数,你可以在此配置默认的java heapsize等参数,

    例如:“-Xmx1024m -verbose:gc -Xloggc:/tmp/@taskid@.gc”@taskid@会被Hadoop框架自动换为相应的taskid, 默认值: “”

    (6) mapreduce.reduce.java.opts:

     Reduce TaskJVM参数,你可以在此配置默认的java heap size等参数,

        例如:“-Xmx1024m -verbose:gc -Xloggc:/tmp/@taskid@.gc”, 默认值: “”

    /*在yarn启动之前就配置在服务器的配置文件中才能生效*/

    (1) yarn.scheduler.minimum-allocation-mb RM中每个容器请求的最小配置,以MB为单位,默认1024
    (2) yarn.scheduler.maximum-allocation-mb RM中每个容器请求的最大分配,以MB为单位,默认8192
    (3) yarn.scheduler.minimum-allocation-vcores    1  
    (4)yarn.scheduler.maximum-allocation-vcores32
    (5)yarn.nodemanager.resource.memory-mb

       表示该节点上YARN可使用的物理内存总量,默认是8192MB),注意,如果你的节点内存资源不够8GB,则需要调减小这个值,而YARN不会智能的探测节点的物理内存总量。

    /*shuffle性能优化的关键参数,应在yarn启动之前就配置好*/

    (1)mapreduce.task.io.sort.mb   100shuffle的环形缓冲区大小,默认100m
    (2) mapreduce.map.sort.spill.percent   0.8环形缓冲区溢出的阈值,默认80%

    容错相关参数

    (1) mapreduce.map.maxattempts:

            每个Map Task最大重试次数,一旦重试参数超过该值,则认为Map Task运行失败,默认值:4

    (2) mapreduce.reduce.maxattempts: 

            每个Reduce Task最大重试次数,一旦重试参数超过该值,则认为Map Task运行失败,默认值:4

    (3) mapreduce.map.failures.maxpercent: 

            当失败的Map Task失败比例超过该值,整个作业则失败,默认值为0. 如果你的应用程序允许丢弃部分输入数据,则该该值设为一个大于0的值,比如5,表示如果有低于5%Map Task失败(如果一个Map Task重试次数超过mapreduce.map.maxattempts,则认为这个Map Task失败,其对应的输入数据将不会产生任何结果),整个作业扔认为成功。

    (4) mapreduce.reduce.failures.maxpercent:

            当失败的Reduce Task失败比例超过该值为,整个作业则失败,默认值为0.

    (5) mapreduce.task.timeout:

            如果一个task在一定时间内没有任何进入,即不会读取新的数据,也没有输出数据,则认为该task处于block状态,可能是临时卡住,也许永远会卡住。为了防止因为用户程序永远block不退出,则强制设置了一个超时时间(单位毫秒),默认是600000,值为0将禁用超时。。

    效率跟稳定性参数

    (1) mapreduce.map.speculative: 

            是否为Map Task打开推测执行机制,默认为true, 如果为true,则可以并行执行一些Map任务的多个实例。

    (2) mapreduce.reduce.speculative:

            是否为Reduce Task打开推测执行机制,默认为true

    (3)mapreduce.input.fileinputformat.split.minsize:

          FileInputFormat做切片时最小切片大小,默认1。

    (5)mapreduce.input.fileinputformat.split.maxsize:

          FileInputFormat做切片时最大切片大小

    (6)推测执行机制(Speculative Execution):

            它根据一定的法则推测出“拖后腿”的任务,并为这样的任务启动一个备份任务,让该任务与原始任务同时处理同一份数据,并最终选用最先成功运行完成任务的计算结果作为最终结果。
     

    注意:

        默认mr推测机制是开启的,通常情况下公司都会关闭该机制,减少资源的浪费



  • 相关阅读:
    c++ stl vector的push_back和emplace_back
    整数模n加法群和乘法群
    分享一下 jpeg的压缩算法总结
    利用位运算转换大小写
    java 作业题8
    java 作业题7
    uni-app开发经验分享二十二: uni-app大转盘思路解析
    微信小程序、微信公众号、H5之间相互跳转
    JS闭包的理解
    js原型详解
  • 原文地址:https://www.cnblogs.com/TiePiHeTao/p/e3f67915fdcefaa8ca553402b0dcb3de.html
Copyright © 2011-2022 走看看