ReduceTask工作机制
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工作机制相关推荐
- Hadoop之ReduceTask工作机制
Hadoop之ReduceTask工作机制 目录 设置ReduceTask并行度(个数) 注意 实验:测试reducetask多少合适 ReduceTask工作机制 1. 设置ReduceTask并行 ...
- B05 - 048、ReduceTask工作机制
初学耗时:0.5h 注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端. 一.ReduceTask工作机制 1.1 整个 Reduce阶段流程. 1.2 简单概述. ...
- MapTask运行机制详解以及Map任务的并行度,ReduceTask 工作机制以及reduceTask的并行度,MapReduce总体工作机制
MapTask运行机制详解 整个Map阶段流程大体如图所示 简单概述 inputFile通过split被逻辑切分为多个split文件, 通过Record按行读取内容给map(用户自己实现的)进行处理, ...
- Yarn基本架构和工作机制
Yarn基本架构和工作机制 概念 Yarn基本架构 ResourceManager (RM)作用 NodeManager (NM)作用 ApplicationMaster (AM)作用 contain ...
- MapRdeuceYarn的工作机制(YarnChild是什么)
MapRdeuce&Yarn的工作机制 一幅图解决你所有的困惑 那天在集群中跑一个MapReduce的程序时,在机器上jps了一下发现了每台机器中有好多个YarnChild.困惑什么时Yarn ...
- Yarn在MapReduce中的工作机制
目录 前言: 1.YARN概述 2.mapreduce&yarn的工作机制 总结: 目录 前言: 在了解Yarn在MR中的作用的时候需要先了解Yarn是什么. 1.YARN概述 Yarn是一个 ...
- hadoop--Yarn资源调度器的基础架构、工作机制 与 作业提交全过程
目录 一.Yarn资源调度器 Yarn 基础架构 二.YARN工作机制 三.作业提交全过程 1. HDFS.YARN.MapReduce三者关系 2. 作业提交过程(YARN) 3. 作业提交过程(H ...
- 大数据之-Hadoop3.x_MapReduce_ReduceTask工作机制并行度---大数据之hadoop3.x工作笔记0125
然后我们继续看一下maptask的工作机制,这个前面也有提过了, 可以看到左边是maptask处理完的数据,然后到了reduceTask阶段,会首先把数据 拉取过来当然,是按照分区拉取的对吧.这是co ...
- 【MapReduce】MapReduce工作机制
一个mapreduce作业,一般分为两阶段执行:map阶段和reduce阶段,下面分别对这两阶段进行介绍. Map阶段 Map阶段又分为五部分:读取文件阶段,MapTask阶段,collect阶段,溢 ...
最新文章
- 数据结构——非线性结构
- 程序开发工具java_15款Java程序员必备的开发工具
- 静态嵌套类(Static Nested Class)和内部类(Inner Class)的不同?
- Python 常用 PEP8 编码规范和建议
- 160613、MyBatis insert操作返回主键
- 小技巧textbox的行数
- 大小不固定的图片和多行文字的垂直水平居中
- python中x y 1_Python的X[y==1, 0]
- 95-136-041-源码-Operator-OneInputStreamOperator
- 关于websocket兼容IE版本
- 【Websocket编程】基于libwebsockets实现客户端数据通信
- RRD原理(转载的)
- 模块Datetime
- 【Linux基础编程】help命令
- 如何解决数据库高并发?
- 堆外缓存OHCache使用总结
- 关于Field Exit 整理的一点资料
- 什么是工程建设的BLT模式
- zblog php 点赞,文章点赞开发版
- 《STM32单片机开发应用教程(HAL库版)---基于国信长天嵌入式竞赛实训平台(CT117E-M4)》第二章 软件安装与使用