上一期我们介绍了MR的基本流程与概念,本期稍微深入了解一下这个流程,尤其是比较重要但相对较少被提及的Shuffling过程. Mapping 上期我们说过,每一个mapper进程接收并处理一块数据,这块数据的大小默认就是一个HDFS数据块大小. Mapper处理数据时,基于性能考虑,会使用缓存,缓存的大小有一个默认值(比如100MB),满了之后,将会写入磁盘文件. 不过在写入之前,会在内存中进行分区(partition),分区的数量取决于reducer的数量,实际上也就是由MR框架决定,例如上图…