在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
具体代码分析待补充。