提问者:小点点

MapReduce程序中的随机播放步骤是否与映射并行运行?


我试图理解一个MapReduce程序。在这样做的时候,我注意到在所有地图任务完成后,几乎立即开始执行减少任务。现在,这令人惊讶,因为那里的减少任务处理按键分组的数据,这意味着中间有混洗/排序步骤。唯一可能发生这种情况的方法是如果混洗与映射并行完成。

其次,如果洗牌确实与映射并行完成,那么Apache Spark中的等价物是什么?映射和按键分组和/或排序也可以在那里并行发生吗?


共1个答案

匿名用户

Spark构建了一个处理所需阶段的DAG(直接非循环图),并将它们分组到需要在节点之间洗牌数据的阶段。与Hadoop不同,Hadoop在map期间推送数据,Spark还原器提取数据,因此只有在它们开始运行时才这样做(另一方面,Spark试图在内存(与磁盘)中运行更多,并且使用DAG更好地处理迭代处理)

Alexey Grishchenko在这里很好地解释了Spark Shuffle(请注意,从Spark 2开始,只存在排序混洗)