hadoop2.8.2 YARN 架构

来源:互联网 发布:矢量数据的概念 编辑:程序博客网 时间:2024/06/03 19:04

YARN的核心思想是把资源管理和任务调度/监控分离到不同的进程中。这个思想的实现依赖于全局的ResourceManager(RM)和每个应用的ApplicationMaster(AM)。
一个应用就是一个单独的作业或者DAG。

ResourceManager和NodeManager形成了数据计算框架,
ResourceManager是系统中所有应用的资源仲裁者。
NodeManager是个代理,它负责容器,监控资源使用(cpu,内存,硬盘,网络)随时通知给ResourceManager/Scheduler.
ApplicationMaster负责从ResourceManager取得资源以及和NodeManager一起工作用来执行和监控任务。

架构图如下:

这里写图片描述

ResourceManager有两个重要的组件:Scheduler(调度器)和ApplicationsManager(应用管理器)
Scheduler分配资源到不同的应用,Scheduler仅仅就是一个调度器,他不负责监控,跟踪应用的状态。
另外,他不保证重新执行失败的任务,不论是应用失败还是硬件失败。Scheduler根据应用的需求以及Container来执行调度工作。Container包含了内存,cpu,硬盘,网络等。

Scheduler拥有插入策略,这使得它可以在不同队列和应用之间分配集群资源。当前的调度器比如:CapacityScheduler和FairScheduler就是可插入的实例。

ApplicationsManager负责接口作业的提交和创建容器来执行应用的ApplicationMaster。并且会提供一个失败重启的服务。每个应用的ApplicationMaster都有从Scheduler获得容器资源的功能,并且跟踪状态监控过程。

hadoop-2.x的MapReduce保留和之前版本的API兼容性。这就是说所有MapReduce作业都运行在YARN之上。

YARN也提供资源预定的概念,通过ReservationSystem,这个组件用户可以指定一个配置文件,可配置资源超时时间和临时约束,以及预定资源保证重要作业的执行。ReservationSystem 跟踪资源超时,执行允许控制,动态指导调度器保证预定工作可行。

原创粉丝点击