B05 - 041、MapReduce的处理流程解析

初学耗时:1h

注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端。

一、MapReduce的处理流程解析
  1.1  Mapper 任务执行过程详解。
  1.2  Reducer 任务执行过程详解。



记忆词:

  Mapper、Reduce、任务执行过程

B05 - 999、大数据组件学习② - Hadoop


ギ 舒适区ゾ || ♂ 累觉无爱 ♀





一、MapReduce的处理流程解析

  1.1 ~ Mapper 任务执行过程详解。
    1.1.1 .  第一阶段。
  • 把输入目录下文件按照一定的标准逐个进行逻辑切片,形成切片规划。
  • 默认情况下,Split size = Block size。
  • 每一个切片由一个MapTask 处理。(getSplits)
    1.1.2 .  第二阶段。
  • 对切片中的数据按照一定的规则解析成<key,value>对。
  • 默认规则是把每一行文本内容解析成键值对。
  • key 是每一行的起始位置(单位是字节),value 是本行的文本内容。(TextInputFormat)
    1.1.3 .  第三阶段。
  • 调用 Mapper 类中的 map 方法。
  • 上阶段中每解析出来的一个<k,v>,调用一次 map 方法。
  • 每次调用 map 方法会输出零个或多个键值对。
    1.1.4 .  第四阶段。
  • 按照一定的规则对第三阶段输出的键值对进行分区。
  • 默认是只有一个区。
  • 分区的数量就是 Reducer 任务运行的数量。
  • 默认只有一个Reducer 任务。
    1.1.5 .  第五阶段。
  • 对每个分区中的键值对进行排序。
  • 首先,按照键进行排序,对于键相同的键值对,按照值进行排序。
  • 比如三个键值对<2,2>、<1,3>、<2,1>,键和值分别是整数。
  • 那么排序后的结果是<1,3>、<2,1>、<2,2>。
  • 如果有第六阶段,那么进入第六阶段;如果没有,直接输出到文件中。
    1.1.6 .  第六阶段。
  • 对数据进行局部聚合处理,也就是 combiner 处理。
  • 键相等的键值对会调用一次 reduce 方法。
  • 经过这一阶段,数据量会减少。
  • 本阶段默认是没有的。
  1.2 ~ Reducer 任务执行过程详解。
    1.2.1 .  第一阶段。
  • Reducer 任务会主动从 Mapper 任务复制其输出的键值对。
  • Mapper 任务可能会有很多,因此 Reducer 会复制多个Mapper 的输出。
    1.2.2 .  第二阶段。
  • 把复制到 Reducer 本地数据,全部进行合并,即把分散的数据合并成一个大的数据。
  • 再对合并后的数据排序。
    1.2.3 .  第三阶段。
  • 对排序后的键值对调用 reduce 方法。
  • 键相等的键值对调用一次reduce 方法,每次调用会产生零个或者多个键值对。
  • 最后把这些输出的键值对写入到 HDFS 文件中。

在整个 MapReduce 程序的开发过程中,我们最大的工作量是覆盖 map 函数和覆盖 reduce 函数。



两个黄鹂鸣翠柳,一行白鹭上青天。

- - - - - - - - - - - - - - - - - - - - - - - - - - - -



^ 至此,MapReduce的处理流程解析完成。


- - - - - - - - - - - - - - - - - - - - - - - - - - - -


※ 世间诱惑何其多,坚定始终不动摇。

在第一个事务以S封锁方式读数据M时,第二个事务对数据M的读方式会遭到失败的是:


A、实现共享时封锁的读。
B、不加封锁的读。
C、实现S封锁的读。
D、实现X封锁的读。

D
alt



两个黄鹂鸣翠柳,一行白鹭上青天。

- - - - - - - - - - - - - - - - - - - - - - - - - - - -


注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端。

我知道我的不足,我也知道你的挑剔,但我就是我,不一样的烟火,谢谢你的指指点点,造就了我的点点滴滴:)!



两个黄鹂鸣翠柳,一行白鹭上青天。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值