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执行过程相关推荐

  1. Hadoop学习之Mapreduce执行过程详解

    一.MapReduce执行过程 MapReduce运行时,首先通过Map读取HDFS中的数据,然后经过拆分,将每个文件中的每行数据分拆成键值对,最后输出作为Reduce的输入,大体执行流程如下图所示: ...

  2. 简述MapReduce执行过程?

    简述MapReduce执行过程? Map把一个函数应用于集合中的所有成员,然后返回一个基于这个处理的结果集;Reduce是把两个或更多个Map中通过多个线程.进程或独立系统并行执行处理的结果集进行分类 ...

  3. Hadoop MapReduce执行过程(一)

    JobClient JobClient是提交job的客户端,当创建一个实例时,构造函数里面要做的事情是: public JobClient(JobConf conf) throws IOExcepti ...

  4. hadoop -- mapreduce执行过程

    1.运行mapreduce程序  ---run 2.本次运行将会生成呢个一个Job , 于是JobClient向JobTracker申请一个JobID 标识该Job. 3.JobClient将Job需 ...

  5. hive底层原理 sql执行过程_Hive mapreduce SQL实现原理——SQL最终分解为MR任务,而group by在MR里和单词统计MR没有区别了-阿里云开发者社区...

    转自:http://blog.csdn.net/sn_zzy/article/details/43446027 SQL转化为MapReduce的过程 了解了MapReduce实现SQL基本操作之后,我 ...

  6. WordCount的理解与MapReduce的执行过程

    WordCount的入门 WordCount是最常见.最基本的一个需求,例如进行词频统计.用户访问记录统计.如果数据量非常小的情况下,使用单机.批处理的方式就可以很快得到结果.但是如果数据量非常大,数 ...

  7. Hadoop详解(三)——MapReduce原理和执行过程,远程Debug,Writable序列化接口,MapReduce程序编写

    MapReduce概述 MapReduce是一种分布式计算模型,由Google提出,主要用于搜索领域,解决海量数据的计算问题. MR由两个阶段组成:Map和Reduce,用户只需要实现map()和Re ...

  8. Hadoop的mapreduce的执行过程

    一.map阶段的执行过程 第一阶段:把输入目录下文件按照一定的标准逐个进行逻辑切片,形成切片规划. 默认Split size = Block size(128M),每一个切片由一个MapT ask处理 ...

  9. hive底层原理 sql执行过程_hive sql编译过程

    sql查询语句处理步骤流程图 准备实例,创建表,插入数据,写要分析的实例查询语句 1.首先创建两个表 2.创建两个表,并插入表数据,脚本略 3.编写咱们要解析的查询语句,即本篇要查询的实例语句. se ...

最新文章

  1. layUI 学习记录
  2. mysql union all sum_[数据库]SQL Server UNION ALL 结果 SUM函数造成精度丢失
  3. TensorFlow框架的这些操作你肯定不知道!
  4. Network 第六篇 - 三层交换机配置路由功能
  5. mysql附加数据库失败_我的数据库为什么附加不上去?
  6. 限免!百名 AI 大咖,20 大技术和行业论坛,邀你加入群聊
  7. Padavan完整编译教程
  8. 人脸数据集汇总(附百度云盘链接)
  9. 硬件编解码与软件编解码的区别
  10. 微信公众号、企业服务号如何配置运营管理人员
  11. 腾达ac5第三方固件_腾达AC9的刷固件指南
  12. Visual studio2022 利用glfw+glad配置OpenGL环境
  13. pandas计算对数收益率
  14. 电商私域流量搭建规划社群运营推广sop销售转化计划书表格模板方案
  15. 创新案例分享 | 医院DRG系统建设项目,助力精细化分析医疗数据
  16. 脱离.Net Framework运行doNet程序的简单方法
  17. excel表格多行空白,让空白行临近上方的数据自动填充到空白行
  18. Python爬取马蜂窝各城市游记总数
  19. java毕业设计网站基于JSP的在线调查问卷系统|投票[包运行成功]
  20. lasso算法及其实现

热门文章

  1. Compmgmtlauncher.exe问题解决方法
  2. 去除word文档中向下的箭头图标
  3. pku 1691 Painting A Board DFS 抽象建图 + 拓扑排序
  4. 学习ASP.NET一定要学习ASP.NET AJAX吗?
  5. 类 property属性
  6. JMeter中的HTTPS套接字错误
  7. [UWP]了解IValueConverter
  8. 修改maven本地仓库位置
  9. HaoZip(好压) 去广告纯净版 4.4
  10. Scrum项目1.0