YARN 架构

翻译: http://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/YARN.html
版本: 2.9.0

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

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

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

MapReduce NextGen体系结构

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

调度程序负责将资源分配给各种正在运行的应用程序,这些应用程序受到容量,队列等限制。调度程序是纯调度程序,因为它不会监视或跟踪应用程序的状态。此外,由于应用程序故障或硬件故障,它不提供有关重新启动失败任务的保证。调度器根据应用程序的资源需求执行其调度功能; 它是基于资源容器的抽象概念来实现的,容器包含内存,CPU,磁盘,网络等元素。

调度程序有一个可插拔策略,负责在各种队列,应用程序等之间对集群资源进行分区。当前调度程序(如CapacityScheduler和FairScheduler)将是插件的一些示例。

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

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

YARN支持通过ReservationSystem进行资源预留,即允许用户在指定时间资源和时间的限制(例如,截止日期),以及后备资源,以确保重要jobs.The可预见的执行组件ReservationSystem跟踪资源过时,对预留执行准入控制,并动态指示底层调度程序确保预留。

为了将YARN扩展到几千个节点之外,YARN 通过YARN Federation功能支持联邦的概念。联邦允许透明地将多个yarn(子)群集在一起,并使它们看起来像一个单一的大型群集。这可以用于实现更大规模,和/或允许将多个独立的群集一起用于非常大的工作,或者对于所有人都具有容量的租户。

你可能感兴趣的:(YARN 架构)