0、ReduceTask工作机制
初学耗时:0.5h
注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端。
一、ReduceTask工作机制
1.1 整个 Reduce阶段流程。
1.2 简单概述。
1.3 详细步骤。
记忆词:
ReduceTask工作机制
一、ReduceTask工作机制
1.1 ~ 整个 Reduce 阶段流程。
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自然连接时,把原本应该舍弃的元组放在结果关系中,这种操作称为________。
…
外连接
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端。
我知道我的不足,我也知道你的挑剔,但我就是我,不一样的烟火,谢谢你的指指点点,造就了我的点点滴滴:)!