(2)Reduce任务的处理过程
2.3 读懂官方提供的WordCount源码
要编写数据处理程序,还要参考MapReduce编程的具体规范,下面进行代码级别的分析和说明:
在“D:\tools\hadoop-2.7.7\share\hadoop\mapreduce\sources”目录下找到“hadoop-mapreduce-examples-2.7.7-sources.jar”,解压缩此文件,在子目录“\org\apache\hadoop\examples”看到WordCount文件,这就是WordCount程序的源代码。
从结构上可以分为3部分,分别是应用程序Driver、Mapper模块与Reducer模块。
(1)应用程序Driver分析
这里的Driver程序主要是指的main函数,在main函数里面进行MapReduce程序的一些初始化设置,并提交任务,等待程序运行完成。
基本上是这样的格式,在此基础上只需要修改部分参数即可。
(2)Mapper模式分析
(3)Reducer模式分析
(4)概括地讲:
进行MapReduce编程时,开发者主要处理的是Mapper和Reducer两个模块,其中包括定义输入输出的键值对格式、编写map与reduce函数中定义的处理逻辑等。
3.编程实现按日期统计访问次数本部分任务目标是统计用户在2016年每个自然日的总访问次数。原始数据文件中提供了用户名称与访问日期,这个任务实质就是要获取以每个自然日为单位的所有用户访问次数的累加值。如果通过MapReduce编程实现这个任务,首先要考虑的是,Mapper与Reducer各自的处理逻辑是怎样的,然后根据处理逻辑编写核心代码,最后在Eclipse中编写核心代码,编译打包后提交集群运行。
3.1 分析思路与处理逻辑
着重考虑以下几个要素:
①输入输出格式 ②Mapper要实现的逻辑 ③Reducer要实现的计算逻辑
(1) 定义输入/输出格式