美文网首页
Reduce Task调优

Reduce Task调优

作者: 忘净空 | 来源:发表于2017-08-02 17:18 被阅读237次

理论

Reduce Task会启动多个拷贝线程从每个Map Task上去读取相应的中间结果,具体的拷贝线程数目由参数"mapreduce.reduce.shuffle.parallelcopies"(默认为5)指定,对于每个待拷贝的文件,如果文件大小小于一定阈值A,则将其放在内存中,否则以文件的形式存放在磁盘上,如果内存中文件满足一定条件D,则会将这些数据写入磁盘,而当磁盘上文件数目达到mapreduce.task.io.sort.factor(默认是10)时,进行一次合并。

阈值A为:
heapsize * {mapreduce.reduce.shuffle.input.buffer.percent} *{mapreduce.reduce.shuffle.memory.limit.percent}

其中,heapsize是通过参数"mapreduce.reduce.java.opts"指定的,默认是200MB,mapreduce.reduce.shuffle.input.buffer.percent默认值为0.7,mapreduce.reduce.shuffle.memory.limit.percent默认0.25。

条件D为以下两个条件中任意一个:

  1. 内存使用率(总的可用内存为heapsize * {mapreduce.reduce.shuffle.input.buffer.percent})达到mapreduce.reduce.shuffle.merge.percent(默认我0.66)

  2. 内存中该文件数目超过 mapreduce.reduce.merge.inmem.threshold(默认是1000)。

实践

reduce shuffle OOM问题

项目配置中:
mapreduce.reduce.shuffle.parallelcopies=10
mapreduce.reduce.java.opts=8.2
mapreduce.reduce.shuffle.input.buffer.percent=0.7
mapreduce.reduce.shuffle.memory.limit.percent=0.25

通过计算判断为何OOM:

8.2*0.7*0.25*10=14.20 > 8.2 (所以OOM),所以我们可以调整mapreduce.reduce.shuffle.parallelcopies=5,mapreduce.reduce.shuffle.input.buffer.percent=0.5来使其不OOM。

hadoop Shuffle Error OOM错误分析和解决
Hadoop配置中已弃用的属性

相关文章

  • Reduce Task调优

    理论 Reduce Task会启动多个拷贝线程从每个Map Task上去读取相应的中间结果,具体的拷贝线程数目由参...

  • Spark 性能调优--数据倾斜

    数据倾斜调优 - 绝大多数task执行得都非常快,但个别task执行极慢。比如,总共有1000个task,997个...

  • spark优化技巧(四)

    算子调优 4.1 MapPartitions提升Map类操作性能 spark中,最基本的原则,就是每个task处理...

  • Spark Shuffle基础

    Shuffle 基本概念 概述: Shuffle描述着数据从map task输出到reduce task 输入的这...

  • Spark调优(4—6)

    4、算子调优 4.1、MapPartitions提升Map类操作性能 spark中,最基本的原则,就是每个task...

  • for in ,for of, reduce

    for in ,for of, reduce 高级函数 filter map reduce filter 回调函数...

  • MR的shuffle机制

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

  • Spark Shuffle

    Shuffle Shuffle描述着数据从map task输出到reduce task输入的这段过程。在分布式情况...

  • MapReduce原理

    要知道怎么对MapReduce作业进行调优前提条件是需要对Map-Reduce的过程了然于胸。 Map Side ...

  • JVM调优

    1 调优层次 性能调优包含多个层次,比如:架构调优、代码调优、JVM调优、数据库调优、操作系统调优等。架构调优和代...

网友评论

      本文标题:Reduce Task调优

      本文链接:https://www.haomeiwen.com/subject/mjdylxtx.html