标签:
Shuffle是MapReduce框架中的一个特定的phase,介于Map phase和Reduce phase之间,当Map的输出结果要被Reduce使用时,输出结果需要按key哈希,并且分发到每一个Reducer上去,这个过程就是shuffle。由于shuffle涉及到了磁盘的读写和网络的传输,因此shuffle性能的高低直接影响到了整个程序的运行效率。
下面这幅图清晰地描述了MapReduce算法的整个流程,其中shuffle phase是介于Map phase和Reduce phase之间。
以wordcount为例,map后形成(word, 1)的key-value对,在对这些key-value对进行reduce之前,需要把同样key的对放在一起,这个过程就是shuffle.
Spark中的shuffle流程:
这里的bucket是一个抽象概念,在实现中每个bucket可以对应一个文件,可以对应文件的一部分或是其他等。
标签:
原文地址:http://www.cnblogs.com/mustone/p/5284436.html