(1)MapReduce框架使用InputFormat模块做Map前的预处理,比如验证输入的格式是否符合输入定义;然后,将输入文件切分为逻辑上的多个InputSplit,InputSplit是MapReduce对文件进行处理和运算的输入单位,只是一个逻辑概念,每个InputSplit并没有对文件进行实际切割,只是记录了要处理的数据的位置和长度。

(2)因为InputSplit是逻辑切分而非物理切分,所以还需通过RecordReader根据InputSplit中的信息来处理InputSplit中的具体记录,加载数据并转换为适合Map任务读取的键值对,输入给Map任务。

(3)Map任务会根据用户自定义的映射规则,输出一系列的<key,value>作为中间结果。

(4)为了让Reduce可以并行处理Map的结果,需要对Map的输出进行一定的分区(partition)、排序(sort)、合并(combine)、归并(merge)等操作,得到<key,value>形式的中间结果,再交给对应的Reduce进行处理,这个过程称为shuffle。从无序的<key,value>到有序的<key,value-list>,这个过程用Shuffle来称呼是非常形象的。

(5)Reduce以一系列<key,value-list>中间结果为输入,执行用户定义的逻辑,输出结果给OutputFormat模块。

(6)OutpFormat模块会验证输出目录是否已经存在以及输出结果类型是否符合配置文件中的配置类型,如果都满足,就输出Reduce的结果到分布式文件系统。

摘自《大数据技术原理与应用》

MapReduce各个执行阶段相关推荐

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

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

  2. javascript运行过程中的“预编译阶段”和“执行阶段”

    javascript相对于其它语言来说是一种弱类型的语言,在其它如java语言中,程序的执行需要有编译的阶段 而在javascript中也有类似的"预编译阶段"(javascrip ...

  3. ie 不执行回调函时_javascript引擎执行的过程的理解--执行阶段

    一.概述 js引擎执行过程主要分为三个阶段,分别是语法分析,预编译和执行阶段,上篇文章我们介绍了语法分析和预编译阶段,那么我们先做个简单概括,如下: 1.语法分析: 分别对加载完成的代码块进行语法检验 ...

  4. javascript引擎执行的过程的理解--执行阶段

    一.概述 js引擎执行过程主要分为三个阶段,分别是语法分析,预编译和执行阶段,上篇文章我们介绍了语法分析和预编译阶段,那么我们先做个简单概括,如下: 1.语法分析: 分别对加载完成的代码块进行语法检验 ...

  5. JS中的预编译(词法分析)阶段和执行阶段

    javascript相对于其它语言来说是一种弱类型的语言,在其它如java语言中,程序的执行需要有编译的阶段,而在javascript中也有类似的"预编译阶段"(javascrip ...

  6. Nginx的执行阶段详解

    在了解nginx的执行阶段前,先看一个例子 对echo不熟悉的,可以先看文章Nginx调试必备了解下echo扩展 回到上面这个例子,在server块中配置这样的location,你觉得输出是什么样子? ...

  7. 怎么在合同谈判,计划和执行阶段分别进行范围管理

    1 合同谈判阶段 取得明确的工作说明书或更细化的合同条款 在合同中明确双方的权利和义务,尤其是关于变更的问题 采取措施,确保合同签约双方对合同的理解是一致的 2 计划阶段 编制范围说明书 创建项目的工 ...

  8. MapReduce中各个阶段的分析(转自道法—自然老师)

    MapReduce中各个阶段的分析: 在MapReduce的各个阶段: 在文件被读入的时候调用的是Inputformat方法读入的.inputformat-->recordreader--> ...

  9. MySQL 查看SQL语句执行阶段和进度信息

    MySQL 查看SQL语句执行阶段和进度信息 测试MySQL版本:5.7.31 根据<MySQL性能优化金字塔法则>做的实验,好书推荐! 我们在创建索引时,经常需要等待执行的SQL一段时间 ...

最新文章

  1. 边端云处理器系列技术参数
  2. 中科大“九章”历史性突破,但实现真正的量子霸权还有多远?
  3. 计算机控制系统康波答案,计算机控制系统(康波)第4章部分参考答案[1]
  4. Easy h-index
  5. iOS中的armv6、armv7、armv7s
  6. 注册COM组件cmd(管理员权限)
  7. Python导包、模块报错的问题
  8. mysql to data_mysql str_to_date 字符串转换为日期
  9. c语言 统计数量用count_请问c语言当中,如何统计数字各自出现的次数
  10. c语言图案问题,C语言绘图问题
  11. verilog学习记(时序电路)
  12. mysql的安装以及开启远程访问
  13. kindeditor在Firefoxt 和 Chrome 下不能取到值的解决方法
  14. ubuntu16.xxx安装mysql5.0项目迁移环境搭建
  15. Oracle下Latch详细介绍
  16. EBS开发_导入物料编码
  17. 画法几何,工程制图基础.....多角度平面投影图推断立体空间结构,实际距离的判别等
  18. leetcode周赛6070. 计算字符串的数字和
  19. 【Android 11】【WiFi模块】WiFi打开函数调用流程图
  20. bilibili封面

热门文章

  1. VSCode取消注释斜体
  2. 人工智能行业每日必读(2020年1月14日)
  3. 计算机数学基础知识点归纳,计算机数学基础--详细介绍
  4. Hololens2仿真器 模拟手势输入
  5. 解决MAC系统升级后虚拟机黑屏问题
  6. 火爆社区的开源数据可视化工具 datart 新用户体验教程
  7. wifi大师分销多开v3.1.5安装教程附带源码
  8. Data truncation: Data too long for column 'xxx' at row 1
  9. PDF提取页面方法,如何从PDF文件中提取页面
  10. Wab开发————jQuery