首先要推荐一下:http://www.alidata.org/archives/1470阿里的大牛在上面的文章中比较详细的介绍了shuffle过程中mapper和reduce的每个过程,强烈推荐先读一下。不过,上文没有写明一些实现的细节,比如:spill的过程,mapper生成文件的 partiti...
分类:
其他好文 时间:
2014-07-29 13:43:18
阅读次数:
298
Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方。要想理解 MapReduce, Shuffle是必须要了解的。我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混。前段时间在做MapReduce job 性能调优的工作,需要深入代码研究MapRed...
分类:
其他好文 时间:
2014-07-29 13:38:48
阅读次数:
219
shuffle是处在map和reduce之间的过程。我们看一下这个过程都有哪些步骤,对这个问题了解的并不深,可能有错误,忘指正
1. map
map输出key,value,对应代码里的context.write(key, value);,这个步骤是将key,value写到内存buffer里了,这个内存的默认大小是100M
2. sort
当数据大小超过buffer容量的80%(默认)时,会...
分类:
其他好文 时间:
2014-07-22 22:39:53
阅读次数:
295
spark shuffle流程分析
回到ShuffleMapTask.runTask函数
现在回到ShuffleMapTask.runTask函数中:
overridedef runTask(context:TaskContext):
MapStatus = {
首先得到要reduce的task的个数。
valnumOutputSplits=
dep.partitioner.num...
分类:
其他好文 时间:
2014-05-09 22:58:33
阅读次数:
574