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

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

架构图如下:

hadoop2.8.2 YARN 架构

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 跟踪资源超时,执行允许控制,动态指导调度器保证预定工作可行。

相关文章:

  • 2022-01-04
  • 2021-05-18
  • 2021-04-10
  • 2022-01-07
  • 2021-08-10
  • 2021-06-28
  • 2021-06-03
  • 2021-07-18
猜你喜欢
  • 2021-05-25
  • 2021-07-06
  • 2022-12-23
  • 2021-09-08
  • 2021-07-25
  • 2021-05-12
相关资源
相似解决方案