MR简述:
MapReduce是一种分布式计算模型,由Google提出,主要用于搜索领域,解决海量数据的计算问题。
MapReduce是分布式运行的,由两个阶段组成:Map和Reduce,Map阶段是一个独立的程序,有很多个节点同时运行,每个节点处理一部分数据。Reduce阶段也是一个独立的程序,有很多个节点同时运行,每个节点处理一部分数据。
MapReduce框架都有默认实现,用户只需要覆盖map()和reduce()两个函数,即可实现自己逻辑的分布式计算,非常简单。
另外这两个函数的形参和返回值都是,使用的时候一定要注意构造。
MapReduce在多于10PB数据时趋向于变慢
主节点:MRAppMaster
MRAppMaster:
1.接收客户端提交的计算任务
2.把计算任务分给nodeManager的Container中执行,即任务调度
3.监控Container中Task的执行情况
Task:
1.执行任务
MR1与MR2的不同(hadoop1与Hadoop2的不同):
MR1:
JobTracker负责global的资源调度和应用管理
TaskTracker负责per-node的Task执行
MR2:
ResourceManager;负责global的资源调度
ApplicationMaster负责per-application的管理
NodeManager:负责per-node的Task执行
如图所示: