Apache Hadoop 0.23 MapReduce 2.0 (MRv2 or YARN) 介绍

MapReduce 在hadoop 0.23版本中经历了一次大修改。现在叫做MapReduce 2.0 (MRv2) 或者 YARN。

JobTracker在MRv2 中被拆分成了两个主要的功能使用守护进程执行:资源管理和任务的调度与监视。这个想法创建一个全局的资源管理(global ResourceManager (RM))和为每个应用创建一个应用管理(ApplicationMaster (AM))。一个应用可以使一个MR jobs的经典场景或者是一串连续的jobs。

 

ResourceManager 和每个slave节点的NodeManager (NM)构成一个资源估算框架。ResourceManager 对在系统中所有应用的资源分配拥有最终的最高级别仲裁权。

 

实际上每个应用的ApplicationMaster(AM)是资源估算框架具体用到的lib包,被用来和ResourceManager 进行资源谈判,并且为NodeManager执行和监控task。

 

MapReduce NextGen Architecture

 

ResourceManager 拥有两个主要的组件:调度器(Scheduler) 和资源管理器(ApplicationsManager)

 

调度器负责为正在执行的各种各样的熟悉容量约束和队列的 applications subject 分配资源。感觉上调度器只是纯粹的调度程序而并不去监视和追踪application执行的状态。所以它并不会去重启失败的任务或处理失败的application或者是硬件错误引起的问题。调度器的调度程序是基于application要求的资源来执行的。调度器也不会基于一个资源容器(内存,CPU,硬盘,网络带宽)的概念来调度,在目前的版本里,它只是基于内存的调度。

 

调度器支持可插拔的策略负责对集群中各种各样的队列和应用进行资源分配。在当前版本中Map-Reduce的调度器,例如CapacityScheduler 和 FairScheduler 是一些可插拔的例子。

 

CapacityScheduler 支持hierarchical queues,所以它可以根据预判来分配集群资源。

 

ApplicationsManager 负责接收 job-submissions,与第一个container谈判用哪个ApplicationMaster 来执行application ,为失败的ApplicationMaster  container提供重启服务。

 

NodeManager 是每个节点的代理对container负责,监控它们的资源使用情况(内存,CPU,硬盘,网络带宽),给 ResourceManager/Scheduler提交报告。

 

每个应用的ApplicationMaster 负责与调度器谈判资源占用的containers数量,追踪状态和监控进程。

 

MRV2 与 之前版本(hadoop-0.20.205)保持兼容。这意味着所有的job只需要重新编译而不做任何修改就可以在MRv2 上运行。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值