YARN基本架构

2022-01-19 09:26:49 浏览数 (1)

YARN 的基本思想是将资源管理和作业调度/监控的功能拆分为单独的守护进程。这个想法是有一个全局 ResourceManager ( RM ) 和每个应用程序 ApplicationMaster ( AM )。应用程序是单个作业或作业的 DAG。

ResourceManager 和 NodeManager 构成了数据计算框架。ResourceManager 是在系统中的所有应用程序之间仲裁资源的最终权威。NodeManager 是每台机器的框架代理,负责容器、监控其资源使用情况(cpu、内存、磁盘、网络)并将其报告给 ResourceManager/Scheduler。

每个应用程序的 ApplicationMaster 实际上是一个特定于框架的库,其任务是协商来自 ResourceManager 的资源并与 NodeManager 一起执行和监视任务。

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

调度程序(Scheduler)负责根据已知的容量、队列等约束将资源分配给各种正在运行的应用程序。调度程序是纯粹的调度程序,因为它不执行应用程序的状态监视或跟踪。此外,它不保证由于应用程序故障或硬件故障而重新启动失败的任务。调度器根据应用程序的资源需求执行其调度功能;它基于资源容器的抽象概念,该概念包含内存、CPU、磁盘、网络等元素。

调度器有一个可插拔的策略,负责在各种队列、应用程序等之间划分集群资源。当前的调度器,如CapacityScheduler和FairScheduler将是一些插件的例子。

ApplicationsManager 负责接受作业提交,协商执行特定于应用程序的 ApplicationMaster 的第一个容器,并提供在失败时重新启动 ApplicationMaster 容器的服务。每个应用程序的 ApplicationMaster 负责与调度程序协商适当的资源容器,跟踪它们的状态并监视进度。

hadoop-2.x 中的 MapReduce 保持与之前稳定版本 (hadoop-1.x) 的API 兼容性。这意味着所有 MapReduce 作业仍应在 YARN 之上原样运行,只需重新编译即可。

YARN通过ReservationSystem支持资源预留的概念,该组件允许用户指定资源随时间和时间限制(例如,截止日期)的配置文件,并预留资源以确保重要作业的可预测执行。ReservationSystem跟踪资源超时,对预留执行准入控制,并动态指示底层调度程序以确保预留已满。

为了超越几千个节点规模,YARN通过YARN 联邦特性支持联邦的概念。联邦特性允许将多个YARN集群组合在一起,使其组成一个大规模集群。这可用于实现更大的规模,和/或允许将多个独立的集群一起用于非常大的作业,或用于具有所有容量的租户。

参考自:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html

本文为从大数据到人工智能博主「xiaozhch5」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://cloud.tencent.com/developer/article/1936566

0 人点赞