本文主要内容: ★理解MapReduce基本原理 ★了解MapReduce应用的执行 ★理解MapReduce应用的设计 一、了解MapReduce MapReduce是一个框架,能够利用许多普通计算机对大规模的数据集进行高并发的、分布式的算法处理。 用户的任务是实现mapper与reducer,这两
本文主要内容:
★理解MapReduce基本原理
★了解MapReduce应用的执行
★理解MapReduce应用的设计
一、了解MapReduce
MapReduce是一个框架,能够利用许多普通计算机对大规模的数据集进行高并发的、分布式的算法处理。
用户的任务是实现mapper与reducer,这两个类会继承Hadoop提供的基础类来解决特殊的问题。就像图3-1中所示的,Mapper将key/value(k1,v1)键值对形式的数据作为输入,然后将他们转变为另一种key/value键值对形式。MapReduce框架对所有mapper输出的key/value进行排序,并将key值相同的所有value值合并(k2,{v2,v2,…})。这些kye/value结合后的会被传递到reducer模块,reducer会将他们转化为另一种key/value对(k3,v3)。
maper和reducer
核心组件:
Mapper与Reducer和MapReduce框架。
Mapper功能:
一个mapper与reducer一起组成一个Hadoop作业。Mapper是作业的强制性部分,可以产生0个或者更多个key/value(k2,v2)键值对。
Reducer功能:
Reducer是作业的可选择性部分,可以没有产出或者产出更多的key/value对(k3,v3)。
MapReduce功能:
调度、同步、容错
MapReduce框架的主要任务(根据用户提供的代码)是统筹所有任务的协调执行。
包括
1.选择合适的机器(节点)运行mapper、启动与监控mapper的执行
2.为reducer的执行选择合适的节点,对mapper的输出进行排序与拉去并且传送给reducer节点、?启动与监控reducer的执行。
3.Mapreduce框架负责调度和监控任务,再次执行失败的任务。
现在我们对MapReduce有了一些了解,下面让我们进一步看看MapReduce作业是如何执行的。
二、Mapreduce作业执行
高层次的hadoop执行框架
下面介绍MapReduce执行管道线的主要组件。
★? Driver:这是主程序,用来初始化MapReduce job。它定义了job的个性化配置,并且标注了所有的组件(包括输