码迷,mamicode.com
首页 > 其他好文 > 详细

shuffle过程的简单描述

时间:2014-07-22 22:39:53      阅读:295      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   文件   数据   io   

shuffle是处在map和reduce之间的过程。我们看一下这个过程都有哪些步骤,对这个问题了解的并不深,可能有错误,忘指正

1. map

map输出key,value,对应代码里的context.write(key, value);,这个步骤是将key,value写到内存buffer里了,这个内存的默认大小是100M

2. sort

当数据大小超过buffer容量的80%(默认)时,会将这部分数据进行排序,按照partition和key值进行排序,partition代表的是会分到哪个reducer里

3. 溢写

排好序之后将数据写到磁盘上

4. merge

因为很多时候不是一次溢写就可以了,可能会经过多次溢写,所以会在磁盘上产生多个文件,这个时候就需要将文件进行合并。

5. copy

通过http的方式将上一个步骤中的磁盘上的数据copy到对应的reduce端

6. mergesort

每个map的输出端的文件时按照key排好序的,这个地方是对多个map端的文件按照key进行排序,边merge边sort

7. reduce

更详细的内容见这篇博文

http://blog.csdn.net/nwpuwyk/article/details/37904657


shuffle过程的简单描述,布布扣,bubuko.com

shuffle过程的简单描述

标签:style   blog   http   文件   数据   io   

原文地址:http://blog.csdn.net/nwpuwyk/article/details/38038663

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!