1、MapReduce
Hadoop并行计算框架,为海量的数据提供了计算。
2、MapReduce的原理
分而治之,一个大任务分成多个小的子任务(map),并行执行后,合并结果(reduce)。
3、基本概念
(1)Job
作业,表示MapReduce程序,一个MapReduce程序可对应若干个作业,而每个作业会被分解成若干个MapReduce任务(Task)。
(2)Task
任务,分为Map Task和Reduce Task两种,均由TaskTracker启动。
(3)JobTracker
任务调度器,负责作业调度;分配任务、监控任务执行进度;监控TaskTracker的状态。
(4)TaskTracker
任务跟踪器,负责执行任务;向JobTracker汇报任务状态。
4、MapReduce体系结构
MapReduce采用Master/Slave的架构。
Master,是整个集群的唯一的全局管理者,负责作业调度、分配任务、监控任务执行进度和监控TaskTracker的状态,即MapReduce中的JobTracker。
Slave,负责任务的执行和任务状态的汇报,即MapReduce中的TaskTracker。
5、MapReduce作业执行过程
(1)首先对输入数据源进行切片。
(2)JobTracker调度TaskTracker并分配Map任务。
(3)TaskTracker读取输入源片段。
(4)TaskTracker执行Map任务,将任务输出保存在本地。
(5)JobTracker调度TaskTracker并分配Reduce任务。
(6)TaskTracker读取Map任务的输出文件。
(7)TaskTracker执行Reduce任务,将任务输出保存到HDFS。