shuffle是一个数据重新分配的过程.
shuffle的英文释义就是”洗牌”
假设集群(5台机器)里有一个机器A存储了一份数据, 数据里面是一份乱序的扑克牌
现在有个任务是计算不同花色的卡牌的数量
MapReduce是一个多台机器并行计算的过程, 所以如果用另外4台机器(B,C,D,F)来各自计算4个花色的卡牌数
将卡牌一张张取出来就是 map 过程(一对一)
就会需要把A里的卡牌(通过网络传输)分配到B,C,D,F机器上, 这个过程就叫做 shuffle
如果B,C,D,F机器把各自花色的卡牌数量合并, 然后所有机器的计算结果(result_B,result_C,result_D,result_F)又都返回给机器A进行合并, 这个过程就是 reduce(多对一)