不是。对于关系的选择运算,只需要Map过程就能实现,对于关系R 中的每个元组t,检测是否是满足条件的所需元组,如果满足条件,则输出键值对<,>,也就是说,键和值都是t。这时的Reduce函数就只是一个恒等式,对输入不做任何变换就直接输出。
Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方。要想理解MapReduce, Shuffle是必须要了解的。我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混。前段时间在做MapReduce job 性能调优的工作,需要深入代码研究MapReduce的运行机制,这才对Shuffle探了个究竟。考虑到之前我在看相关资料而看不懂时很恼火,所以在这里我尽最大的可能试着把Shuffle说清楚,让每一位想了解它原理的朋友都能有所收获。