MapReduce执行过程
Mapper任务的执行过程:
- 第一阶段是把输入文件按照一定的标准分片(InputSplit),每个输入片的大小是固定的。默认情况下,输入片(InputSplit)的大小与数据块(Block)的大小是相同的。如果数据块(Block)的大小是默认值64MB,输入文件有两个,一个是32MB,一个是72MB。那么小的文件是一个输入片,大文件会分为两个数据块,那么是两个输入片。一共产生三个输入片。每一个输入片由一个Mapper进程处理。这里的三个输入片,会有三个Mapper进程处理。
- 第二阶段是对输入片中的记录按照一定的规则解析成键值对。有个默认规则是把每一行文本内容解析成键值对。“键”是每一行的起始位置(单位是字节),“值”是本行的文本内容。
- 第三阶段是调用Mapper类中的map方法。第二阶段中解析出来的每一个键值对,调用一次map方法。如果有1000个键值对,就会调用1000次map方法。每一次调用map方法会输出零个或者多个键值对。
- 第四阶段是按照一定的规则对第三阶段输出的键值对进行分区。比较是基于键进行的。比如我们的键表示省份(如北京、上海、山东等),那么就可以按照不同省份进行分区,同一个省份的键值对划分到一个区中。默认是只有一个区。分区的数量就是Reducer任务运行的数量。默认只有一个Reducer任务。
- 第五阶段是对每个分区中的键值对进行排序。首先,按照键进行排序,对于键相同的键值对,按照值进行排序。比如三个键值对<2,2>、<1,3>、<2,1>,键和值分别是整数。那么排序后的结果是<1,3>、<2,1>、<2,2>。如果有第六阶段,那么进入第六阶段;如果没有,直接输出到本地的linux文件中。
- 第六阶段是对数据进行归约处理,也就是reduce处理。键相等的键值对会调用一次reduce方法。经过这一阶段,数据量会减少。归约后的数据输出到本地的linxu文件中。本阶段默认是没有的,需要用户自己增加这一阶段的代码。
Reducer任务的执行过程
- 第一阶段是Reducer任务会主动从Mapper任务复制其输出的键值对。Mapper任务可能会有很多,因此Reducer会复制多个Mapper的输出。
- 第二阶段是把复制到Reducer本地数据,全部进行合并,即把分散的数据合并成一个大的数据。再对合并后的数据排序。
- 第三阶段是对排序后的键值对调用reduce方法。键相等的键值对调用一次reduce方法,每次调用会产生零个或者多个键值对。最后把这些输出的键值对写入到HDFS文件中。
在整个MapReduce程序的开发过程中,最大的工作量是覆盖map函数和覆盖reduce函数。
----------------------------------------------------------------------------
map
1.读取输入文件,解析成<k,v>,每个<k,v>调用一次map
2.map()
3.分区(默认1)
4.排序、分组(shuffle)
5.规约(combine可选)
reduce
1.网络copy
2.reduce()(先排序)
3.输出
转载于:https://www.cnblogs.com/mlj5288/p/4449716.html
MapReduce执行过程相关推荐
- Hadoop学习之Mapreduce执行过程详解
一.MapReduce执行过程 MapReduce运行时,首先通过Map读取HDFS中的数据,然后经过拆分,将每个文件中的每行数据分拆成键值对,最后输出作为Reduce的输入,大体执行流程如下图所示: ...
- 简述MapReduce执行过程?
简述MapReduce执行过程? Map把一个函数应用于集合中的所有成员,然后返回一个基于这个处理的结果集;Reduce是把两个或更多个Map中通过多个线程.进程或独立系统并行执行处理的结果集进行分类 ...
- Hadoop MapReduce执行过程(一)
JobClient JobClient是提交job的客户端,当创建一个实例时,构造函数里面要做的事情是: public JobClient(JobConf conf) throws IOExcepti ...
- hadoop -- mapreduce执行过程
1.运行mapreduce程序 ---run 2.本次运行将会生成呢个一个Job , 于是JobClient向JobTracker申请一个JobID 标识该Job. 3.JobClient将Job需 ...
- hive底层原理 sql执行过程_Hive mapreduce SQL实现原理——SQL最终分解为MR任务,而group by在MR里和单词统计MR没有区别了-阿里云开发者社区...
转自:http://blog.csdn.net/sn_zzy/article/details/43446027 SQL转化为MapReduce的过程 了解了MapReduce实现SQL基本操作之后,我 ...
- WordCount的理解与MapReduce的执行过程
WordCount的入门 WordCount是最常见.最基本的一个需求,例如进行词频统计.用户访问记录统计.如果数据量非常小的情况下,使用单机.批处理的方式就可以很快得到结果.但是如果数据量非常大,数 ...
- Hadoop详解(三)——MapReduce原理和执行过程,远程Debug,Writable序列化接口,MapReduce程序编写
MapReduce概述 MapReduce是一种分布式计算模型,由Google提出,主要用于搜索领域,解决海量数据的计算问题. MR由两个阶段组成:Map和Reduce,用户只需要实现map()和Re ...
- Hadoop的mapreduce的执行过程
一.map阶段的执行过程 第一阶段:把输入目录下文件按照一定的标准逐个进行逻辑切片,形成切片规划. 默认Split size = Block size(128M),每一个切片由一个MapT ask处理 ...
- hive底层原理 sql执行过程_hive sql编译过程
sql查询语句处理步骤流程图 准备实例,创建表,插入数据,写要分析的实例查询语句 1.首先创建两个表 2.创建两个表,并插入表数据,脚本略 3.编写咱们要解析的查询语句,即本篇要查询的实例语句. se ...
最新文章
- layUI 学习记录
- mysql union all sum_[数据库]SQL Server UNION ALL 结果 SUM函数造成精度丢失
- TensorFlow框架的这些操作你肯定不知道!
- Network 第六篇 - 三层交换机配置路由功能
- mysql附加数据库失败_我的数据库为什么附加不上去?
- 限免!百名 AI 大咖,20 大技术和行业论坛,邀你加入群聊
- Padavan完整编译教程
- 人脸数据集汇总(附百度云盘链接)
- 硬件编解码与软件编解码的区别
- 微信公众号、企业服务号如何配置运营管理人员
- 腾达ac5第三方固件_腾达AC9的刷固件指南
- Visual studio2022 利用glfw+glad配置OpenGL环境
- pandas计算对数收益率
- 电商私域流量搭建规划社群运营推广sop销售转化计划书表格模板方案
- 创新案例分享 | 医院DRG系统建设项目,助力精细化分析医疗数据
- 脱离.Net Framework运行doNet程序的简单方法
- excel表格多行空白,让空白行临近上方的数据自动填充到空白行
- Python爬取马蜂窝各城市游记总数
- java毕业设计网站基于JSP的在线调查问卷系统|投票[包运行成功]
- lasso算法及其实现