MapReduce学习二之WordCount案例

发布时间 2023-10-04 18:30:56作者: yesyes1

一、案例概述

1、第一步--变成偏移量的K1,V1(这一步不需要我们自己写)

2、进入Map阶段

输出新的<K2,V2>的键值对;

3、Shuffle阶段

分区、排序、规约、分组

输出新的键值对:

4、Reduce阶段

转换为<K3,V3>的新的形式的键值对;

利用TextOutputFormat的类实现结果的输出;

二、具体实践

1、准备一个.txt文件

2、Mapper阶段

在新建的Maven项目中导入相关依赖:
hadoop-common/hadoop-hdfs/hadoop-client/hadoop-mapreduce-client-core/junit

新建一个mapper的类(可以自定义名称为:WordCountMapper),并继承于Mapper(hadoop.mapreduce)

重写里面的map方法:

具体代码如下图:

3、Reduce阶段

新建一个类(可以自定义命名为WordCountReduce),并继承于Reducer类;

重写reduce方法:

4、主类代码编写

新建一个自定义名为JobMain的类,并继承于Configured类,且实现名为Tool(hadoop.util)的接口:

在main函数里面启动job任务:

在run函数里面进行job任务的设置:

第一步--指定文件的读取和读取路径

第二步--指定Map阶段的处理方式和数据类型

第三、四、五、六步(Shuffle阶段)--采用默认方式,暂时不做处理;

第七步--指定Reduce阶段的处理方式和数据类型

第八步--设置输出类型

最后,等待任务结束: