第四章、MapReduce编程入门
目录结构
1.使用Eclipse建立MapReduce工程
1.1 下载与安装Eclipse
1.2 配置MapReduce环境
1.3 新建MapReduce工程
2.通过源码初识MapReduce工程
2.1 通俗理解MapReduce原理
2.2 了解MR实现词频统计的执行流程
2.3 读懂官方提供的WordCount源码
3.编程实现按日期统计访问次数
3.1 分析思路与处理逻辑
3.2 编写核心模块代码
3.3 任务实现
4.编程实现按访问次数排序
4.1 分析思路与处理逻辑
4.2 编写核心模块代码
4.3 任务实现
5.小结
6.实训
实训1.获取成绩表的最高分记录
实训2.对两个文件中的数据进行合并和去重
7.课后练习
背景:某社交网站经过几年的发展,注册用户超过1000万,其中付费用户(VIP)占用户总数的0.1%。网站运营方的重点之一是向付费用户提供更加优质的服务,必须根据服务对象的特点设计有针对性的服务方案。需要对付费用户访问网站的数据分析,这是一项非常重要的工作任务。这个任务由以下几个阶段来详细展开:
1.使用Eclipse建立MapReduce工程具体参考: https://blog.csdn.net/hehe_soft_engineer/article/details/102147721
2.通过源码初识MapReduce工程此部分,目的是对MapReduce的核心模块 Mapper与Reducer的执行流程有一定的认识。通过学习wordcount的源码来了解一下。
2.1 通俗理解MapReduce原理
(1)MapReduce包括Mapper模块和Reducer模块,MapReduce可以看做是一个专业处理大数据的工程队,主要由下面成员构成:
①Mapper:映射器 ②Mapper助理InputFormat:输入文件读取器
③Shuffle:运输队 ④Shuffle助理Sorter:排序器
⑤Reducer:归约器 ⑥Reducer助理OutputFormat:输出结果写入器
(2)简化的MapReduce处理流程图:
①数据切片:系统把数据分给多个Mapper来处理,通过数据分片的形式,这是分布式计算的第一步。
②数据映射:分片完成后,Mapper助理InputFormat从文件输入目录读取数据,再由Mapper对数据进行解析,组织成为新的格式(键值对形式),最后Mapper将处理好的数据输出,等待shuffle运输队取走结果。
③数据混洗:shuffle运输队把获取的结果按照相同的键(Key)进行汇集,再把结果送到Shuffle助理Sorter处,由Sorter负责对这些结果排序,,然后提交给Reducer。
④数据归约:Reducer收到数据后,将结果进行汇总与映射工作,得到最终的计算结果,最后由Reducer助理OutputFormat将结果输出到指定位置处。
2.2 了解MR实现词频统计的执行流程
下面举一个实例来说明一下Map和Reduce过程
输入
输出
Hello World Our World
BigData 2
Hello BigData Real BigData
Great 1
Hello Hadoop Great Hadoop
Hadoop 3
Hadoop MapReduce
Hello 3
MapReduce 1
Our 1
Real 1
World 2
(1)Map任务的处理过程