1.MapReduce概述
HDFS实现了分布式文件存储,存储问题解决了,我们就需要考虑如何对数据进行处理,MapReduce是一个计算框架(编程模型),基于该计算框架,可以很容易的编写数据处理程序,从而以较高的效率处理海量数据集。
MR框架对于程序员的最大意义在于,不需要掌握分布式计算编程,不需要考虑分布式编程里可能存在的种种难题,比如任务调度和分配、文件逻辑切块、位置追溯、工作。这样,程序员能够把大部分精力放在核心业务层面上,大大简化了分布式程序的开发和调试周期。
2.MapReduce的设计思想
MapReduce的设计思想简单概括而言,就是“分而治之”。整个MapReduce阶
段分为两大部分,分别是Map、Reduce。
(1)map负责“分”,即把复杂的任务分解为若干个“简单的任务”来处理。“简单的任务”包含三层含义:一是数据或计算的规模相对原任务要大大缩小;二是就近计算原则,即任务会分配到存放着所需数据的节点上进行计算;三是这些小任务可以并行计算,彼此间几乎没有依赖关系。
(2)reducer负责”合”,即对map阶段输出的处理结果进行汇总。
3.MapReduce组成架构
在MapReduce程序进行计算时,需要yarn进行资源管理,yarn主要分为ResourceManager和NodeManager两部分。
ResourceManager是一个全局的资源管理器,ResourceManager控制整个集群并管理程序向集群其他DataNode进行资源的分配。
NodeManager是每个DataNode节点上的资源和任务管理器,一方面,它会定时地向ResourceManager汇报本节点上的资源使用情况以及运行状态;另一方面,它接收并处理来自ResourceManager