这里暂时把处理过程分为2个阶段:
1、map阶段:其实就是解析出一个一个key-value
2、reduce阶段:则是得到一个key-values,把map阶段同一个key的value统计起来,形成一个values。
map数:是由输入目录的文件数和文件大小决定的。
举例,4个小文件(小于64M)和一个大文件80M,默认的datanode的block大小为64M,则map数为4+2=6个。
理解map-reduce的处理过程,还得在map-reduce中间再加上2个阶段,真正的阶段为:map阶段–>shuffle阶段–>combine阶段–>reduce阶段。
所以,在map阶段和reduce阶段再加上shuffle和combine阶段。
1.1、shuffle阶段:把map阶段(很多个map)解析出来的key-value混淆一下(自行体会一下)。
1.2、combine阶段:把相同的key进行组合合并
最后,
2、reduce阶段:这样reduce才能把每一个value进行统计合并成values。