【MapReduce】MapReduce工作机制
一个mapreduce作业,一般分为两阶段执行:map阶段和reduce阶段,下面分别对这两阶段进行介绍。
Map阶段
Map阶段又分为五部分:读取文件阶段,MapTask阶段,collect阶段,溢写阶段,combine阶段。
首先客户端把待处理文件分片信息、jar包信息、参数信息等提交到HDFS。然后Yarn集群接受任务,启动AppMaster把任务分配NodeManager,并由NodeManager执行MapTask任务。从上图的第6步开始,进入读取文件阶段。
- 读取文件阶段
MapTask通过用户编写的RecordReader,从输入的分片中解析出一个个的k-v对; - MapTask阶段
每个k-v对调用一次map()函数,输出新的k-v对; - Collect阶段
MapTask阶段输出的k-v对会先进入环形缓冲区,默认内存大小为100M。在环形缓冲区中,数据进行分区、排序等; - 溢写阶段
当环形缓冲区写满80%,数据从内存溢写到hdfs,持续多轮以后会产生多个溢写文件。溢写之前,数据会先按分区,再按key排序; - Combine阶段
当MapTask结束时,多个溢写文件会被合并成一个大的文件。Combine可以把文件中的k-v对数据排列的更紧密一些,减少网络传输I/O。
Reduce阶段
Reduce阶段分为四部分:Copy阶段、Merge阶段、sort阶段、Reduce阶段
- Copy阶段
ReduceTask从各个MapTask上远程拷贝一片数据,如果其大小超过一定阈值,则写到磁盘上,否则直接放到内存中; - Merge阶段
远程拷贝文件的同时,ReduceTask启动两个后台线程对内存和磁盘上的文件进行合并,以防止内存使用过多或磁盘上文件过多; - sort阶段
为了将key相同的数据聚在一起,Hadoop采用了基于排序的策略。由于各个MapTask已经实现了对自己处理结果的局部排序,此步中只需对所有数据进行一次归并排序; - Reduce阶段
以上步骤处理后的数据调用reduce()函数,每个k-v调用一次。最后把输出文件写到HDFS中。
以上就是对MapReduce工作机制的简单说明,如有错误的地方,还望指正。
【MapReduce】MapReduce工作机制相关推荐
- 第6章-MapReduce的工作机制-笔记
为什么80%的码农都做不了架构师?>>> 作业的提交 可以只用一行代码来运行一个MapReduce作业: JobClient.runJob(conf). 作业的调度 Hadoo ...
- MapTask运行机制详解以及Map任务的并行度,ReduceTask 工作机制以及reduceTask的并行度,MapReduce总体工作机制
MapTask运行机制详解 整个Map阶段流程大体如图所示 简单概述 inputFile通过split被逻辑切分为多个split文件, 通过Record按行读取内容给map(用户自己实现的)进行处理, ...
- java程序员的大数据之路(8):MapReduce的工作机制
概述 Hadoop运行作业时的整个过程如果所示. 包含如下4个独立的实体. 客户端:提交MapReduce作业. jobtracker:协调作业的运行.它的主类是JobTracker. tasktra ...
- MapReduce1和Yarn的工作机制
Hadoop中的MapReduce的工作机制分为两种: MapReduce 1 也就是Hadoop 2.0之前的工作机制 YARN MapReduce 1 构成 MapReduce 1最主要的其实就是 ...
- Yarn在MapReduce中的工作机制
目录 前言: 1.YARN概述 2.mapreduce&yarn的工作机制 总结: 目录 前言: 在了解Yarn在MR中的作用的时候需要先了解Yarn是什么. 1.YARN概述 Yarn是一个 ...
- Hadoop 4、Hadoop MapReduce的工作原理
一.MapReduce的概念 MapReduce是hadoop的核心组件之一,hadoop要分布式包括两部分,一是分布式文件系统hdfs,一部是分布式计算框就是mapreduce,两者缺一不可,也就是 ...
- 经典MapReduce作业和Yarn上MapReduce作业运行机制
一.经典MapReduce的作业运行机制 如下图是经典MapReduce作业的工作原理: 1.1 经典MapReduce作业的实体 经典MapReduce作业运行过程包含的实体: 客户端,提交MapR ...
- 什么是MapReduce?MapReduce的运行机制是什么?MapReduce的实现过程
1. MAPREDUCE原理篇(1) Mapreduce是一个分布式运算程序的编程框架,是用户开发"基于hadoop的数据分析应用"的核心框架: Mapreduce核心功能是将用户 ...
- MapReduce的运行机制及共同好友
1 .MapReduce的运行机制详解 1.1:MapTask 工作机制 整个Map阶段流程大体如上图所示. 简单概述:inputFile通过split被逻辑切分为多个split文件,通过Record ...
最新文章
- docker mac python_Docker Python 例子
- BZOJ1257 [CQOI2007]余数之和
- service层的方法上使用@Transactional注解,程序发生异常没有回滚
- 【数据库】oracle数据库----内嵌视图
- linux ssh密钥对,Mac使用ssh密钥登录Linux
- Hive Shell
- IDBI的完整格式是什么?
- linux进入字符界面编程,MPlayer字符界面操作方法
- 跳槽和求职 ,10条掏心建议
- sunplus 8202v iop源代码阅读笔记——1
- oracle disk missing,oracle asm disk被格式化为ntfs文件系统
- Swift - 高级运算符介绍
- 【python入门到实践1】简介和环境搭建
- 中英文论文写作指导第三部分(实验、材料和方法部分)
- PM之数据分析与逻辑能力
- IOS TalkingData实现数据监控
- 项目管理知识体系指南 (八)
- Android 百度离线地图下载完后调用下载好的离线包
- win10锁屏c语言,怎样在Win10锁屏界面打开任意应用程序【图文教程】
- PHP7封装了str_ends_with, phper看了都说好