Hadoop源码分析35 QuickSort & HeapSort

在MapTask 的spill 阶段会使用快速排序org.apache.hadoop.util.QuickSort :
在QuickSort 中有部分代码,当元素个数小于13时候,使用插入排序 (Insert Sort)。
在QuickSort 中,当栈的层数过多时,使用堆排序(org.apache.hadoop.util.HeapSort

在MapTask 和 ReduceTask的 merge 阶段会使用到优先级队列 PriorityQueue(实际是一个Heap):
org.apache.hadoop.mapred.MergeQueue
org.apache.hadoop.util.PriorityQueue

具体代码分析待补充。

 

posted @ 2014-05-28 08:48  lihui1625  阅读(79)  评论(0编辑  收藏  举报