YARN架构简述

作者: 疯狂小兵 | 2016-12-06 | 阅读
「编辑」 「本文源码」

架构

YARN的基本思想是将资源的管理功能和Job调度/监控的功能切分到两个守护进程中。 该思想是为了有一个全局的资源管理器(RM)和每个应用的ApplicationMaster(AM)。应用要么是单任务,要么是DAG的任务序列。

资源管理器(RM)和节点管理器(NM)构成了数据计算的框架。RM是整个系统资源的最终仲裁者。 NM是每个机器上负责容器,监控他们的资源(cpu、内存、磁盘、网络)使用并且将这些资源报告给RM/调度者的框架代理。

实际上,每个应用的AM是框架的具体库,从RM处谈判获取资源并使用NM执行和监控任务。

yarn架构图

RM有两个主要的组件:Scheduler和ApplicationsManager。

Scheduler负责给多种运行的应用项目分配资源,常见的容量、队列约束等等。

在该场景中Scheduler只是单纯的调度器,它不会监控或跟踪应用的状态,并且也不保证重启失败的任务,不管是因为应用故障还是硬件故障。

Scheduler基于应用对资源的需求执行它的调度功能,也会基于资源容器(由内存,CPU,磁盘和网络组成)的抽象概念

Scheduler有一个负责在多种队列,应用间分隔集群资源的可插拔的策略。当前的调度器,CapacityScheduler和FairScheduler会有一些插件的例子。

ApplicationsManager 负责接收Job提交,为执行特定应用的ApplicationMaster仲裁第一个容器并且为失效后重启ApplicationMaster容器提供服务。

每个应用的ApplicationMaster负责跟Scheduler谈判适当的资源容器,跟踪他们的状态并监控进程。

Hadoop2.x中Mapreduce维持了API兼容以前的版本(hadoop1.x),这意味着所有的Mapreduce仅仅重新编译后就能运行在YARN上。


版权声明:本文由 在 2016年12月06日发表。本文采用CC BY-NC-SA 4.0许可协议,非商业转载请注明出处,不得用于商业目的。
文章题目及链接:《YARN架构简述》




  相关文章:

「游客及非Github用户留言」:

「Github登录用户留言」:

TOP