ReduceTask工作机制图示

ReduceTask工作机制流程

1. Copy阶段

ReduceTask从各个MapTask上远程拷贝一片数据,并针对某一片数据,如果其大小超过一定阈值,则写到磁盘上,否则直接放到内存中。

2. Merge阶段

在远程拷贝数据的同时,ReduceTask启动了两个后台线程对内存和磁盘上的文件进行合并,以防止内存使用过多或磁盘上文件过多。

3. Sort阶段

按照MapReduce语义,用户编写reduce()函数输入数据是按key进行聚集的一组数据。为了将key相同的数据聚在一起,Hadoop采用了基于排序的策略。由于各个MapTask已经实现对自己的处理结果进行了局部排序,因此,ReduceTask只需对所有数据进行一次归并排序即可。

4. Reduce阶段

reduce()函数将计算结果写到HDFS上。

注意事项

(1) ReduceTask=0,表示没有Reduce阶段,输出文件个数和Map个数一致。

(2) ReduceTask默认值就是1,所以输出文件个数为一个。

(3)如果数据分布不均匀,就有可能在Reduce阶段产生数据倾斜

(4) ReduceTask数量并不是任意设置,还要考虑业务逻辑需求,有些情况下,需要计算全局汇总结果,就只能有1个ReduceTask。

(5)具体多少个ReduceTask,需要根据集群性能而定。

(6)如果分区数不是1,但是ReduceTask为1,是否执行分区过程。
答案是:不执行分区过程。因为在MapTask的源码中,执行分区的前提是先判断ReduceNum个数是否大于1,不大于1肯定不执行。

ReduceTask工作机制相关推荐

  1. Hadoop之ReduceTask工作机制

    Hadoop之ReduceTask工作机制 目录 设置ReduceTask并行度(个数) 注意 实验:测试reducetask多少合适 ReduceTask工作机制 1. 设置ReduceTask并行 ...

  2. B05 - 048、ReduceTask工作机制

    初学耗时:0.5h 注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端. 一.ReduceTask工作机制   1.1  整个 Reduce阶段流程.   1.2  简单概述. ...

  3. MapTask运行机制详解以及Map任务的并行度,ReduceTask 工作机制以及reduceTask的并行度,MapReduce总体工作机制

    MapTask运行机制详解 整个Map阶段流程大体如图所示 简单概述 inputFile通过split被逻辑切分为多个split文件, 通过Record按行读取内容给map(用户自己实现的)进行处理, ...

  4. Yarn基本架构和工作机制

    Yarn基本架构和工作机制 概念 Yarn基本架构 ResourceManager (RM)作用 NodeManager (NM)作用 ApplicationMaster (AM)作用 contain ...

  5. MapRdeuceYarn的工作机制(YarnChild是什么)

    MapRdeuce&Yarn的工作机制 一幅图解决你所有的困惑 那天在集群中跑一个MapReduce的程序时,在机器上jps了一下发现了每台机器中有好多个YarnChild.困惑什么时Yarn ...

  6. Yarn在MapReduce中的工作机制

    目录 前言: 1.YARN概述 2.mapreduce&yarn的工作机制 总结: 目录 前言: 在了解Yarn在MR中的作用的时候需要先了解Yarn是什么. 1.YARN概述 Yarn是一个 ...

  7. hadoop--Yarn资源调度器的基础架构、工作机制 与 作业提交全过程

    目录 一.Yarn资源调度器 Yarn 基础架构 二.YARN工作机制 三.作业提交全过程 1. HDFS.YARN.MapReduce三者关系 2. 作业提交过程(YARN) 3. 作业提交过程(H ...

  8. 大数据之-Hadoop3.x_MapReduce_ReduceTask工作机制并行度---大数据之hadoop3.x工作笔记0125

    然后我们继续看一下maptask的工作机制,这个前面也有提过了, 可以看到左边是maptask处理完的数据,然后到了reduceTask阶段,会首先把数据 拉取过来当然,是按照分区拉取的对吧.这是co ...

  9. 【MapReduce】MapReduce工作机制

    一个mapreduce作业,一般分为两阶段执行:map阶段和reduce阶段,下面分别对这两阶段进行介绍. Map阶段 Map阶段又分为五部分:读取文件阶段,MapTask阶段,collect阶段,溢 ...

最新文章

  1. 数据结构——非线性结构
  2. 程序开发工具java_15款Java程序员必备的开发工具
  3. 静态嵌套类(Static Nested Class)和内部类(Inner Class)的不同?
  4. Python 常用 PEP8 编码规范和建议
  5. 160613、MyBatis insert操作返回主键
  6. 小技巧textbox的行数
  7. 大小不固定的图片和多行文字的垂直水平居中
  8. python中x y 1_Python的X[y==1, 0]
  9. 95-136-041-源码-Operator-OneInputStreamOperator
  10. 关于websocket兼容IE版本
  11. 【Websocket编程】基于libwebsockets实现客户端数据通信
  12. RRD原理(转载的)
  13. 模块Datetime
  14. 【Linux基础编程】help命令
  15. 如何解决数据库高并发?
  16. 堆外缓存OHCache使用总结
  17. 关于Field Exit 整理的一点资料
  18. 什么是工程建设的BLT模式
  19. zblog php 点赞,文章点赞开发版
  20. 《STM32单片机开发应用教程(HAL库版)---基于国信长天嵌入式竞赛实训平台(CT117E-M4)》第二章 软件安装与使用

热门文章

  1. digitalocean如何还原出厂设置
  2. 数据中心在2017年的愿望清单
  3. FBI承认技术实力不足 要求国会增加3800万美元财政预算
  4. eclipse 向HDFS中创建文件夹报错 permission denied
  5. c++ const 关键字 学习笔记
  6. Spring (二) OOP V.S AOP
  7. CCS5.5里DSP工程建及Simulator模式配置
  8. mac php 连接mysql数据库_Mac环境下php操作mysql数据库的方法分享
  9. Excel问题汇总!
  10. chocolatey的使用