目录
零、学习目标
- 理解TopN分析法
- 实现TopN分析法
一、导入新课
- 通过上节课的学习,我们熟悉了MapReduce经典案例——数据去重的具体实现流程。本节课将针对MapReduce经典案例——TopN进行详细讲解。
二、新课讲解
(一)案例分析
1、TopN分析法介绍
- TopN分析法是指从研究对象中按照某一个指标进行倒序或正序排列,取其中所需的N个数据,并对这N个数据进行重点分析的方法。
2、案例需求及分析
现假设有数据文件num.txt,现要求使用MapReduce技术提取上述文本中最大的5个数据,并最终将结果汇总到一个文件中。
先设置MapReduce分区为1,即ReduceTask个数一定只有一个。我们需要提取TopN,即全局的前N条数据,不管中间有几个Map、Reduce,最终只能有一个用来汇总数据。
在Map阶段,使用TreeMap数据结构保存TopN的数据,TreeMap默认会根据其键的自然顺序进行排序,也可根据创建映射时提供的 Comparator进行排序,其firstKey()方法用于返回当前集合最小值的键。
在Reduce阶段,将Map阶段输出数据进行汇总,选出其中的TopN数据,即可满足需求。这里需要注意的是,TreeMap默认采取正序排列,需求是提取5个最大的数据,因此要重写Comparator类的排序方法进行倒序排序.
(二)案例实现
1、准备数据文件
- 启动hadoop服务