前言
在很多业务场景下,需要对原始的数据读取分析后,将输出的结果按照指定的业务字段进行排序输出,方便上层应用对结果数据进行展示或使用,减少二次排序的成本
在hadoop的MapReduce中,提供了对于客户端的自定义排序的功能相关API
MapReduce排序
- 默认情况下,MapTask 和ReduceTask均会对数据按照key进行排序
- 默认的排序按照字典序,且实现排序的方法是快排
MapReduce排序分类
1、部分排序
MapReduce根据输入记录的键值对数据集总体排序,确保输出的文件内部数据有序
2、全排序
最终的输出结果只有一个文件,且内部有序,实现方式是只设置一个ReduceTask,但是这种做法在处理的某个文件特别大的时候,效率会非常低,这也就丧失了MapReduce提供的并行处理任务的能力
3、辅助排序
在Reduce端对key进行分组,比如说,在接收的key为bean对象的时候,想让一个或多个字段相同的key进入到同一个reduce方