MapReduce原理图
2020-11-20 14:23:39 2 举报
MapReduce处理文件流程
作者其他创作
大纲/内容
继承
MapOutputBuffer类
a1 a1 a1 a1 a1 a1 a1 a1 a1 a1 a1 a1
快速排序
Spiller溢出组件
磁盘文件切片2
磁盘文件切片1
抓取器(fetcher)
while循环
每组 kvp 对应的 源数据
getPartition方法
KV
通过key获取分区标记p
run方法
20%的保留空间
MapTask
0=a b a a b
reduce()
Mapper类
调用
collect方法
分区溢出
Reducer类
返回p
5=d c c b a
hasNextKey()
磁盘(1号区)
b1 b1 b1 b1 b1 b1
Merger合并组件
缓冲数组存至80%
写入磁盘
以键值对形式传递给Mapper
HashPartitioner类(分区器)
reduce方法
a b a a bd c c b a
将多次溢出的数据合并并重新排序
循环读取
RecordReader方法
map方法
setInputPaths方法
第二次或第n次溢出
GroupingComparetor分组器
分别加载到迭代器中
磁盘文件切片3
TextInputFormat类
0号区的所有数据
磁盘(0号区)
Reducer(1号区)
d1 d1 d1
map()
环形缓冲数组kvBuffer
b1 b1 b1 b1 b1 b1 d1 d1 d1
通过context传出
HTTP下载
a1 a1 a1 a1 a1 a1 a1 a1 a1 a1 a1 a1 c1 c1 c1 c1 c1 c1
设置文件路径
对文件切片
FileInputFormat类
c1 c1 c1 c1 c1 c1
Reducer(0号区)
getSplits方法
收藏
0 条评论
下一页