一、MapReduce是什么

MapReduce 是一种编程模型,是面向大数据并行处理的计算模型、框架和平台。

二、MapReduce特点

1、分布可靠

2、封装了实现的细节,基于框架API编程,面向商业分布式的编码

3、跨语言编程

三、MapReduce运行流程

1、Pre-Map

此时将文件拆分成若干个小块(split,基于block),然后将split中的数据进行分割。

2、Map

此时将分割好的数据放入到Map中(K,V)进行分区—>排序—>合并相同项(K相同,v++)

3、Reduce

此时从各个Map中拿出同一个分区的内容,排序合并,并输出结果

四、Java API

1、运行java JAR包

yarn jar jar包名 主类名 输入文件地址 输出文件地址

2、注意事项、

输出文件地址必须为空目录(不存在的目录),目的是防止数据丢失或损毁

3、Java代码实现

写三个类,mapper,reducer,dirver
其中mapper对应流程中的Map,
mapper类继承Hadoop中的mapper,其中泛型,前两个泛型为输入,后两个泛型为输出
driver,相当于master中间调控,
reducer相当于流程中的Reduce,
reduce类继承Hadoop中的Reduce,其中泛型,前两泛型为输入,对应Mapper中的输出。

五、 MadReduce Shell应用

1、查看二级命令

mapred回车

2、查看三级命令

mapred -任意二级命令 回车

3、常用命令

mapred -job kill job_id 终止任务执行
mapred -job -list 查看正在执行的命令