Mapreduce执行任务过程

1.把输入的文件逻辑切片,每个切片由一个maptask处理;

2.对切片中的数据按照一定的规格解析成键值对,默认规则是每一行解析成一对键值对;

3.每解析出调用一个kv调用一次map中的map方法,会输出零个或者多个键值对;

4.按照一定的队则,讲输出的键值对进行分区,分区的数量就是reducerTask的数量;

5.对每个分区中的键值对的key按照字典序进行排序,相同的key只会调用一次reducer中的方法;

6.reducer任务会主动从mapper任务复制其输出的键值对,mapper任务可能会有很多,因此reducer会复制多个mapper的输出;

7.把复制到reducer本地数据,全部进行合并,把分散的数据合并成一个大的数据,再对合并后的数据排序;

8.对排序胡的键值对调用reduce方法。键相同的键值对调用一次reduce方法,每次调用会产生零个或者多个键值对。最后把这些输出的键值对写入到HDFS文件中。

猜你喜欢

转载自blog.csdn.net/Sunshine_2211468152/article/details/83586949