一、流程介绍
map到reduce过程:
map—shuffle---->reduce
19/07/13 19:55:31 INFO mapreduce.Job: map 0% reduce 0%
19/07/13 19:55:42 INFO mapreduce.Job: map 50% reduce 0%
19/07/13 19:55:43 INFO mapreduce.Job: map 100% reduce 0%
19/07/13 19:55:50 INFO mapreduce.Job: map 100% reduce 100%
shuffle
相同的key通过网络传输 拉到一起,当某个key的数据量特别大,会有数据倾斜。
1、提交文件到mapreduce,假如文件大小为260M,但块的默认大小为128M,就会有三个块
2、文件会被进行splitting,将文件分割成三个块,大多数split分割都是按照块进行的。
3、被分割的块文件进行map映射,启动的task数量为3
4、然后通过网络传输key至suffling环节,相同的key拉到一起,当某个key的数据量特别大,会有数据倾斜。(suffling可以认为是处于reducing阶段,行业内说法)
5、reduce就是将之前的数据进行一个整合,最终输出到一个文件中,默认task数量为1 , 参数:mapreduce.job.reduces