一、导入新课
- 回顾项目四HDFS相关的知识,由于MapReduce是Hadoop系统的另一个核心组件,它是一种可用于大数据并行处理的计算模型、框架和平台,主要解决海量数据的计算,是目前分布式计算模型中应用较为广泛的一种。因此,本次课将针对MapReduce分布式计算框架进行详细讲解。
二、新课学习
(一)MapReduce核心思想
MapReduce的核心思想是“分而治之”。所谓“分而治之”就是把一个复杂的问题,按照一定的“分解”方法分为等价的规模较小的若干部分,然后逐个解决,分别找出各部分的结果,把各部分的结果组成整个问题的结果,这种思想来源于日常生活与工作时的经验,同样也完全适合技术领域。
MapReduce作为一种分布式计算模型,它主要用于解决海量数据的计算问题。使用MapReduce操作海量数据时
(二)MapReduce编程模型
(三)MapReduce编程实例——词频统计思路
1、Map阶段(映射阶段)
2、Reduce阶段(归并阶段)
(四)MapReduce编程实例——词频统计实现
1、准备数据文件
(1)在虚拟机上创建文本文件
2)上传文件到HDFS指定目录
2、创建Maven项目
添加相关依赖
创建词频统计映射器类
为了更好理解Mapper
类的作用,在map()
函数里暂时不进行每行文本分词处理,直接利用context
输出key
和value
-
- MapReduce是一种编程模型,用于处理大规模数据集的并行运算。使用MapReduce执行计算任务的时候,每个任务的执行过程都会被分为两个阶段,分别是Map和Reduce,其中Map阶段用于对原始数据进行处理,Reduce阶段用于对Map阶段的结果进行汇总,得到最终结果。
- 输入键值对⟹ \Longrightarrow⟹输出键值对
- 创建
/wordcount/input
目录, - 执行命令:
hdfs dfs -mkdir -p /wordcount/input
- 在Hadoop WebUI界面上查看上传的文件
-
创建Maven项目 -
MRWordCount
- 在
pom.xml
文件里添加hadoop
和junit
依赖
- 创建
net.hw.mr
包,在包里创建WordCountMapper
类