转载:https://blog.youkuaiyun.com/weixin_40371587/article/details/80825977
翻译自:https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html
YARN的基本思想是将资源管理和作业调度/监控的功能分解为单独的守护进程,主要是有一个全局的ResourceManager(RM)和每个应用程序的ApplicationMaster(AM),应用程序可以是单个作业,也可以是DAG作业。
ResourceManager和NodeManager组成数据计算框架,ResourceManager是调度系统中所有应用程序之间资源的最终权威机构,NodeManager是负责容器的每台应用服务器的代理框架,监视它们的资源使用情况(cpu,内存,磁盘,网络),并将其报告给ResourceManager / Scheduler。
每个应用程序的ApplicationMaster实际上是一个特定于框架的库,并负责从ResourceManager协商资源,并与NodeManager一起工作来执行和监视这些任务。以下图来自官方文档

ResourceManager有两个主要组件:Scheduler和ApplicationsManager
调度程序负责将资源分配给各种正在运行的应用程序,这些应用程序受到容量,队列等约束。调度程序是纯调度程序,因为它不会监视或跟踪应用程序的状态。此外,由于应用程序故障或硬件故障,它不提供有关重新启动失败任务的保证。调度程序根据应用程序的资源需求执行调度功能;它是基于资源容器的抽象概念来实现的,容器包含内存,CPU,磁盘,网络等元素。
调度程序有一个可插拔策略,负责在各种队列,应用程序等之间分配群集资源,
当前的调度程序(如CapacityScheduler和FairScheduler)将是插件的一些示例。
ApplicationsManager负责接受作业提交,协商一个执行具体应用程序的ApplicationMaster容器,并提供在发生故障时重新启动ApplicationMaster容器的服务,每个应用程序的ApplicationMaster负责从调度程序中协商适当的资源容器,跟踪其状态并监视进度。
hadoop-2.x中的MapReduce与以前的稳定版本(hadoop-1.x)保持API兼容性,这意味着所有MapReduce作业应该仍然在YARN之上运行,只需重新编译即可
YARN通过ReservationSystem支持资源预留的概念,ReservationSystem允许用户随时间和时间限制(例如截止日期)指定资源概况,并预留资源以确保重要作业的可预测执行。ReservationSystem跟踪资源 过时,对预留执行准入控制,并动态指示底层调度程序确保预留满员。
为了将YARN扩展到几千个节点之外,YARN通过YARN Federation功能支持联邦的概念。 联邦允许透明地将多个纱线(子)群集在一起,并使它们看起来像一个单一的大型群集。 这可以用于实现更大规模,和/或允许将多个独立的群集一起用于非常大的工作,或者对于所有人都具有容量的租户。
YARN将资源管理和作业调度分离,由ResourceManager和ApplicationMaster协同工作。ResourceManager负责全局资源分配,NodeManager管理本地资源,ApplicationMaster负责任务执行和监控。YARN支持资源预留和联邦扩展,与MapReduce API兼容。
880

被折叠的 条评论
为什么被折叠?



