对MapReduce进行简要的总结,都是精华!
一:Map阶段:
1 输入的数据被切分成多个块,然后每一个块都被放入Map阶段进行处理(Map中有Map Task引擎),每一个块对应一个map。
2 每一个块数据在map中都会进行combiner合并(local reduce), 以防大量的重复的信息进入reduce阶段,缓解reduce的压力。
3 每一个map介绍后都要进行partitioner处理,根据每一个key的值,按照partitioner算法分配到不同的reduce阶段,这部分是把数据写到本地磁盘中的。
二:Reduce阶段:
1 通过shuffle从partitioner中远程拷贝数据。
2 进行sort排序,有多少个不同的key,进行多少次循环。
3 每一个reduce产生不同的结果,存储到目标目录中,该目录存在n个reduce结果集。
4 将目标目录中的reduce结果集文件进行合并成一个文件,或者下一阶段要处理reduce结果集多个文件也可以。
三:原理如下图