云计算(二十四)- Apache Hadoop NextGen MapReduce (YARN)

前面学习了第一代的MR,今天开始学习一下YARN,MR部分的源码以及常用的几个demo(join,二次排序,自定义inputfomat等)会在以后的博客中介绍,相关的优化也会在其中实现,该分析应该会在学习完大部分hadoop生态圈后进行深入的学习。下面开始正题:

MapReduce在hadoop-0.23中已经进行了升级,这个升级被我们成为MapReduce 2.0 (MRv2)或者是YARN。

MRv2的基本思路就是将原来的JobTracker分成两个部分:资源管理进程和job调控监控进程。这个改变会产生一个全局的ResourceManager (RM)和为每一个应用产生一个ApplicationMaster (AM)。其中的应用可以是一个典型的MR job也可以是一个DAG。

ResourceManager 和每一个Slave节点,NodeManager形成了一个数据计算框架。ResourceManager决定了系统中所有资源的调配。

每一个应用的ApplicationMaster负责与ResourceManager谈判获取资源并且和NodeManager一起去执行监控任务的。

MapReduce NextGen Architecture


ResourceManager包括两个主要组件:Scheduler 和ApplicationsManager

Scheduler是负责分配资源给各种的应用,包括容量和队列等。他只是一个调度器,不会监控跟踪应用的状态。另外他不保证重启因为应用运行失败或者硬件失败的任务。Scheduler调度功能是基于应用的资源需求的。它基于resourceContainer的抽象,它包含元素,如内存、cpu、磁盘、网络等等。在第一个版本中,只有内存被支持。

Scheduler采用插件式管理,负责在众多队列和应用中分隔资源。当前Map-Reduce调度器比如CapacityScheduler 和FairScheduler可以作为例子。

CapacityScheduler支持hierarchical queues,允许具有预见性的集群资源共享。

ApplicationsManager负责接受提交的job,决定执行程序应用的第一个容器为ApplicationsManager,并且提供失败后的服务重启功能

NodeManager负责每个节点上的资源管理,负责向ResourceManager/Scheduler报告containers的状态和监控资源使用情况,这些也将想RM汇报。

每一个应用的ApplicationMaster都要负责和Scheduler协商获取资源,跟踪监控内部运行的状态。

MRV2 具有版本兼容性,之前所有的Map-Reduce还是可以在MRv2 运行,只需要重新编译一下


细节可以参考:http://hortonworks.com/hadoop/yarn/




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值