MapReduce的shuffle原理---shuffle为什么要排序?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/QMW19910301/article/details/86535812

shuffle排序,按字典顺序排序的,目的是把相同的的key可以提前一步放到一起。

shuffle就是把key相同的东西放到一起去,其实不用sort(排序)也能shuffle,那为什么要sort排序呢?

sort是为了通过外排(外部排序)降低内存的使用量:因为reduce阶段需要分组,将key相同的放在一起进行规约,使用了两种算法:hashmap和sort,如果在reduce阶段sort排序(内部排序),太消耗内存,而map阶段的输出是要溢写到磁盘的,在磁盘中外排可以对任意数据量分组(只要磁盘够大),所以,map端排序(shuffle阶段),是为了减轻reduce端排序的压力。

      

猜你喜欢

转载自blog.csdn.net/QMW19910301/article/details/86535812