一:何为MapReduce
HDFS和MapReduce是Hadoop的两个重要核心,其中MR是Hadoop的分布式计算模型。MapReduce主要分为两步Map步和Reduce步,引用网上流传很广的一个故事来解释,现在你要统计一个图书馆里面有多少本书,为了完成这个任务,你可以指派小明去统计书架1,指派小红去统计书架2,这个指派的过程就是Map步,最后,每个人统计完属于自己负责的书架后,再对每个人的结果进行累加统计,这个过程就是Reduce步。
二:WordCount程序
程序的功能:统计每个手机号的上行流量,下行流量和总流量。
流量数据如下:
Map实现代码如下:
Reduce实现代码如下:
流量统计实体类:
main方法运行类:
来看一下Job设置了哪些东西:
- 设置处理该作业的类,setJarByClass()
- 设置这个作业的名字,setJobName()
- 设置这个作业输入数据所在的路径
- 设置这个作业输出结果保存的路径
- 设置实现了Map步的类,setMapperClass()
- 设置实现了Reduce步的类,setReducerClass()
- 设置输出结果key的类型,setOutputKeyClass()
- 设置输出结果value的类型,setOuputValueClass()
- 执行作业
运行的结果如下: