B05 - 048、ReduceTask工作机制

0、ReduceTask工作机制

初学耗时:0.5h

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

一、ReduceTask工作机制
  1.1  整个 Reduce阶段流程。
  1.2  简单概述。
  1.3  详细步骤。



记忆词:

  ReduceTask工作机制


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





一、ReduceTask工作机制

  1.1 ~ 整个 Reduce 阶段流程。

alt

  1.2 ~ 简单概述。

  • Reduce 大致分为 copy、sort、reduce 三个阶段,重点在前两个阶段。
  • copy阶段包含一个 eventFetcher 来获取已完成的 map 列表,由 Fetcher 线程去 copy数据,在此过程中会启动两个 merge 线程,分别为 inMemoryMerger 和onDiskMerger,分别将内存中的数据 merge 到磁盘和将磁盘中的数据进行 merge。待数据 copy 完成之后,copy 阶段就完成了,开始进行 sort 阶段,sort 阶段主要是执行 finalMerge 操作,纯粹的 sort 阶段,完成之后就是 reduce 阶段,调用用户定义的 reduce 函数进行处理。

  1.3 ~ 详细步骤。

    1.3.1 .  第一阶段。
  • Copy 阶段,简单地拉取数据。Reduce 进程启动一些数据 copy 线程(Fetcher),通过 HTTP 方式请求 maptask 获取属于自己的文件。
    1.3.2 .  第二阶段。
  • Merge 阶段。这里的 merge 如 map 端的 merge 动作,只是数组中存放的是不同 map 端 copy 来的数值。

  • Copy 过来的数据会先放入内存缓冲区中,这里的缓冲区大小要比 map 端的更为灵活。merge 有三种形式:内存到内存;内存到磁盘;磁盘到磁盘。默认情况下第一种形式不启用。

  • 当内存中的数据量到达一定阈值,就启动内存到磁盘的 merge。

  • 与 map 端类似,这也是溢写的过程,这个过程中如果你设置有 Combiner,也是会启用的,然后在磁盘中生成了众多的溢写文件。

  • 第二种 merge 方式一直在运行,直到没有 map 端的数据时才结束,然后启动第三种磁盘到磁盘的 merge 方式生成最终的文件。

    1.3.3 .  第三阶段。
  • 把分散的数据合并成一个大的数据后,还会再对合并后的数据排序。
    1.3.4 .  第四阶段。
  • 对排序后的键值对调用 reduce 方法,键相等的键值对调用一次 reduce 方法,每次调用会产生零个或者多个键值对,最后把这些输出的键值对写入到 HDFS文件中。


独在异乡为异客,每逢佳节倍思亲。

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



^ 至此,ReduceTask工作机制完成。


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


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

在关系R和S自然连接时,把原本应该舍弃的元组放在结果关系中,这种操作称为________。


外连接
alt



独在异乡为异客,每逢佳节倍思亲。

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


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

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



独在异乡为异客,每逢佳节倍思亲。


猜你喜欢

转载自blog.csdn.net/weixin_42464054/article/details/92775711