MapTask的工作机制
MapTask工作机制图示
MapTask工作机制流程
1. Read阶段
MapTask通过用户编写的RecordReader,从输入InputSplit中解析出key/value。
2. Map阶段
该节点主要是将解析出的key/value交给用户编写map()函数处理,并产生一系列新的key/value。
3. Collect收集阶段
在用户编写map()函数中,当数据处理完成后,一般会调用OutputCollector.collect()输出结果。在该函数内部,它会将生成的key/value分区(调用Partitioner),并写入一个环形内存缓冲区中。
4. Spill阶段
即“溢写”阶段,当环形缓冲区满后,MapReduce会将数据写到本地磁盘上,生成一个临时文件。需要注意的是,将数据写入本地磁盘之前,先要对数据进行一次本地排序,并在必要时对数据进行合并、压缩等操作。
溢写阶段详情:
(1)利用快速排序算法对缓存区内的数据进行排序,排序方式是,先按照分区编号Partition进行排序,然后按照key进行排序。这样,经过排序后,数据以分区为单位聚集在一起,且同一分区内所有数据按照key有序。
(2)按照分区编号由小到大依次将每个分区中的数据写入任务工作目录下的临时文件output/spillN.out(N表示当前溢写次数)中。如果用户设置了Combiner,则写入文件之前,对每个分区中的数据进行一次聚集操作。
(3)将分区数据的元信息写到内存索引数据结构SpillRecord中,其中每个分区的元信息包括在临时文件中的偏移量、压缩前数据大小和压缩后数据大小。如果当前内存索引大小超过1MB,则将内存索引写到文件output/spillN.out.index中。
5. Combine阶段
当所有数据处理完成后,MapTask对所有临时文件进行一次合并,以确保最终只会生成一个数据文件。
(1)当所有数据处理完后,MapTask会将所有临时文件合并成一个大文件,并保存到文件output/file.out中,同时生成相应的索引文件output/file.out.index。
(2)在进行文件合并过程中,MapTask以分区为单位进行合并。对于某个分区,它将采用多轮递归合并的方式。每轮合并io.sort.factor(默认10)个文件,并将产生的文件重新加入待合并列表中,对文件排序后,重复以上过程,直到最终得到一个大文件。
(3)让每个MapTask最终只生成一个数据文件,可避免同时打开大量文件和同时读取大量小文件产生的随机读取带来的开销。
MapTask的工作机制相关推荐
- 大数据之-Hadoop3.x_MapReduce_ReduceTask工作机制并行度---大数据之hadoop3.x工作笔记0125
然后我们继续看一下maptask的工作机制,这个前面也有提过了, 可以看到左边是maptask处理完的数据,然后到了reduceTask阶段,会首先把数据 拉取过来当然,是按照分区拉取的对吧.这是co ...
- Hadoop之MapTask工作机制
Hadoop之MapTask工作机制 目录 并行度决定机制 MapTask工作机制 1. 并行度决定机制 问题引出 maptask的并行度决定map阶段的任务处理并发度,进而影响到整个job的处理速度 ...
- MapTask运行机制详解以及Map任务的并行度,ReduceTask 工作机制以及reduceTask的并行度,MapReduce总体工作机制
MapTask运行机制详解 整个Map阶段流程大体如图所示 简单概述 inputFile通过split被逻辑切分为多个split文件, 通过Record按行读取内容给map(用户自己实现的)进行处理, ...
- Yarn基本架构和工作机制
Yarn基本架构和工作机制 概念 Yarn基本架构 ResourceManager (RM)作用 NodeManager (NM)作用 ApplicationMaster (AM)作用 contain ...
- ReduceTask工作机制
ReduceTask工作机制图示 ReduceTask工作机制流程 1. Copy阶段 ReduceTask从各个MapTask上远程拷贝一片数据,并针对某一片数据,如果其大小超过一定阈值,则写到磁盘 ...
- MapRdeuceYarn的工作机制(YarnChild是什么)
MapRdeuce&Yarn的工作机制 一幅图解决你所有的困惑 那天在集群中跑一个MapReduce的程序时,在机器上jps了一下发现了每台机器中有好多个YarnChild.困惑什么时Yarn ...
- Hadoop之Yarn工作机制详解
Hadoop之Yarn工作机制详解 目录 Yarn概述 Yarn基本架构 Yarn工作机制 作业提交全过程详解 1. Yarn概述 Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于 ...
- Hadoop之ReduceTask工作机制
Hadoop之ReduceTask工作机制 目录 设置ReduceTask并行度(个数) 注意 实验:测试reducetask多少合适 ReduceTask工作机制 1. 设置ReduceTask并行 ...
- Yarn在MapReduce中的工作机制
目录 前言: 1.YARN概述 2.mapreduce&yarn的工作机制 总结: 目录 前言: 在了解Yarn在MR中的作用的时候需要先了解Yarn是什么. 1.YARN概述 Yarn是一个 ...
最新文章
- ORACLE 导空表结构
- mysql 优化器不准_mysql 优化器有哪些可选开关
- 简单配置 docker swarm
- NVisionXR_iOS教程十二 —— 多图识别
- day21-字节流和字符流
- 【Unity】EasyTouch5触屏检测
- js基础知识汇总09
- 数据结构严蔚敏 #二叉树 代码复现
- Java 代码实现pdf转word文件 | 无水印 | 无页数限制
- python视频车流量计数_【使用攻略】【图像识别】车流量统计(动态版)
- 舍得网-开发问题(学习别人经验)
- 数据守护集群之MPP主备集群
- 多账号多开浏览器-文件管理助手
- HDFS 的深入了解,深入浅出,面试必备(Hadoop的三部曲——上)
- 路由及路由器工作原理深入解析1:概述
- upload-labs文件上传漏洞(Pass-01~Pass-21)
- 压力传感器/压力变送器的选型
- 阿里云Flink sql 基本使用手册
- Elasticsearch架构选型指南——不止是搜索引擎,还有......
- 进化算法的比较(GA,PSO,DE)及其优化算法包的使用
热门文章
- 对时序逻辑电路采用不同描述方式,ISE综合出来的电路(RTL Schematic)比较(以模5计数器为例)
- SpringBoot整合Freemarker+Mybatis
- 【SharePoint】设置站点通讯组
- webpack 配置简单说几句 ?
- Tomcat 原理篇
- Eclipse启动时报错
- 如何在Evolution中加密(六)
- at24c16如何划分出多个读写区_51单片机向at24c16EPROM写入一个数据每问题,写入多个数据,读出的数据都一样...
- CCS卸载安装过程及所遇问题
- CIC滤波器溢出处理