YARN-02-YARN的框架

来源:互联网 发布:淘宝零食旗舰店 编辑:程序博客网 时间:2024/05/22 03:11

翻译自:http://hadoop.apache.org/docs/r2.0.5-alpha/hadoop-yarn/hadoop-yarn-site/YARN.html
说明:本人水平有限,不对任何专有名词翻译,如有任何错误,麻烦帮忙指正,谢谢。

MapReduce在hadoop-0.23经历一个完整的大修后,有了现在我们所说的MRv2或YARN。
MRv2的基本想法是把JobTracker的资源管理和作业调度、监控,拆分成单独的守护进程,这个想法有一个全局的ResourceManager(RM)和每个应用的ApplicationMaster(AM)。一个应用是经典MapReduce作业中的一个作业,或者这些作业中的一个DAG(Directed Acyclic Graph,有向无环图)。
ResourceManager、每个从节点和NodeManager(NM)形成数据计算框架,ResourceManager在仲裁系统中所有应用的资源方面拥有最高的权限。
每个程序的ApplicationMaster实际是一个特定的框架库,负责与ResourceManager协商资源并且与NodeManager执行、监控任务。

ResourceManager包含两个重要组件:Scheduler和ApplicationsManager。
Scheduler的职责是根据容量、队列等常见的一些限制给各种运行的应用分配资源。Scheduler是一个单纯的调度器,也就是说,不进行应用状态的监控和跟踪,也不会由于应用或硬件的失败为重启失败的任务提供保障。Scheduler执行基于应用的资源需求的调度功能,Scheduler是基于资源容器的抽象,这个资源容器是由例如内存、CPU、硬盘和网络等元素组成。第一版仅支持内存。
Scheduler是可插拔的插件,主要的职责是为各种队列和应用等划分资源,当前的MapReduce调度器例如CapacityScheduler和FairScheduler都该插件的示例。
CapacityScheduler支持分层的队列,以便允许更多可预知的集群资源共享。
ApplicationsManager是职责是接受作业提交、协商第一个ApplicationMaster容器执行程序,为失败的ApplicationMaster容器提供重启服务。
NodeManager是每个机器框架代理,主要职责是为容器监控它们的资源使用(CPU、内存、硬盘和网络)并报告给ResourceManager/Scheduler。
每个应用的ApplicationMaster主要职责是从Scheduler中协商合适的资源容器,跟踪状态和监控进度。

原创粉丝点击