本文目录
一、重新认识shuffle
1.1、什么是shuffle?
shuffle在词典里的翻译是:洗牌,改组,混洗的意思。在咱们编程的世界里其实它不是第一次出现,比如Java API里的Collections.shuffle(List<T>)
方法,它会随机地打乱list里元素的顺序。那么作为整个MapReduce过程的核心,shuffle具体是怎样的呢?
首先看一下官方关于shuffle过程介绍的图:
这张图如果是初学者拿来看,绝对看不明白,因为描述的太混乱了。把这张图贴出来的目的是先有个大致印象,比如里面的spill,partition,merge,copy,sort等等名词,等看完第二节的详解再回过来看,相信会有一目了然的感觉。
下面再来看一张图:
这张图比官方的就清晰了许多,首先我们可以看出来每个过程的数据流向,其次我