hadoop探究 -- shuffle 和 排序

来源:互联网 发布:.net编程语言 编辑:程序博客网 时间:2024/05/21 12:47

参考《hadoop权威指南》


什么是shuffle

系统执行排序的过程----将map输出作为输入传给reducer。MR确保每个reducer的输入都是按键排序。shuffle是MR的心脏。

map端

map中数据流动方式:每个map都有一个环形内存缓存区(100M),输出先放在该区,当大于一个阀值(0.8)时再写入磁盘。

在写入磁盘前,线程根据数据要传到的不同reducer把数据分成相应的partition,然后每个分区内先内部排序。还有个combiner对排序后的结果合并。

写磁盘时可以对map的输出进行压缩。

reducer通过http凡是得到输出文件的分区。

具体对应的参数和调优,会在下面给出。


reduce端

reduce先进行复制,然后进行排序(合并)
0 0