**

Mapreduce基础介绍

介绍
MapReduce是一个分布式运算程序的编程框架,是用户开发“基于 Hadoop的
数据分析应用”的核心框架。
MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个
完整的分布式运算程序,并发运行在一个 Hadoop集群上。
优点

1.MapReduce易于编程

它简单的实现一些接口,就可以完成一个分布式程序,这个分布式程序可

以分布到大量廉价的PC机器上运行。也就是说你写一个分布式程序,跟写

个简单的串行程序是一模一样的。就是因为这个特点使得 MapReduce编

程变得非常流行。

2.良好的扩展性

当你的计算资源不能得到满足的时候,你可以通过简单的增加机器来扩展

它的计算能力。

3.MapReduce设计的初衷就是使程序能够部署在廉价的PC机器上,这就要求

它具有很高的容错性。比如其中一台机器挂了,它可以把上面的计算任务

转移到另外一个节点上运行,不至于这个任务运行失败,而且这个过程不

需要人工参与,而完全是由 Hadoop内部完成的。

4.适合PB级以上海量数据的离线处理

可以实现上干台服务器集群并发工作,提供数据处理能力。

mapreduce 自定义组件 mapreduce包括哪些组件_数据处理


1)分布式的运算程序往往需要分成至少2个阶段

2)第一个阶段的 Map Task并发实例,完全并行运行,互不相干。

3)第二个阶段的 ReduceTask并发实例互不相干,但是他们的数据依赖于上一个阶段的所有

Map Task并发实例的输出。

4) MapReduce编程模型只能包含一个Map阶段和一个 Reduce阶段,如果用户的业务逻辑非常复杂,

就只能用多个MapReduce程序串行运行。

一 个完整的 MapReduce程序在分布式运行时有三类实例进程*

1.MrAppMaster:负责整个程序的过程调度及状态协调。
负责Map阶段的整个数据处理流程。

2.Map Task :负责Map阶段的整个数据处理流程。
(1)用户自定义的 Mapper要继承自己的父类
(2) Mapper的输入数据是KV对的形式(KV的类型可自定义)
(3) Mapper中的业务逻辑写在map(方法中
(4)Mapr的输出数据是KV对的形式(KV的类型可自定义)
(5)map(方法( MapTask进程)对每一个K V调用一次

3. Reduce task:负责 Reduce阶段的整个数据处理流程
主要对每对KV值按要求进行计算

Driver的作用:
(1)取配置信息,获取job对象实例
(2)指定本程序的a包听在的本地路径
(3)关联 Mapper/ reducer业务类
(4)指定 Mapper输出数据的kv型
(5)指定最终输出的数据的k类型
(6)指定job的输入原始文件所在目录
(7)指定job的输出结果所在目录
(8)提交作业