YARN体系结构指南

1. 简介

hadoop-0.23引入的新体系结构将JobTracker的两个主要功能:资源管理和作业生命周期管理分为不同的组件。

新的ResourceManager管理计算资源向应用程序的全局分配,并且每个应用程序的ApplicationMaster管理应用程序的调度和协调。

应用程序既可以是传统MapReduce作业的单一作业,也可以是这类作业的DAG。

ResourceManager和每台计算机的NodeManager守护程序(管理该计算机上的用户进程)构成计算结构。

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

2. YARN

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

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

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


体系架构

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

Scheduler负责将资源分配给各种正在运行的应用程序,这些应用程序受容量,队列等熟悉的限制。调度程序是纯调度程序,因为它不会监视或跟踪应用程序的状态。 此外,由于应用程序故障或硬件故障,它不提供有关重新启动失败任务的保证。 调度器根据应用程序的资源需求执行其调度功能; 它是基于资源容器的抽象概念来实现的,容器包含了内存,CPU,磁盘,网络等元素。
调度器是一个可插拔的组件负责将资源分配给各种各样的队列、应用等。目前的容量调度器(CapacityScheduler)和公平调度器(FairScheduler)将成为一些插件的例子。

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

3. ResourceManager HA

ResourceManager(RM)负责跟踪集群中的资源,并调度应用程序(例如MapReduce作业)。 在Hadoop 2.4之前,ResourceManager是YARN集群中的单点故障。 高可用性功能以Active / Standby ResourceManager对的形式添加冗余,以消除此单点故障。
RM的高可用特性通过任何时间点的主/备架构来实现的,一个RM作为活跃,而其他RMs进入备用模式随时等待接管失活的RM。备用转活跃的触发可以通过管理员用命令行或者通过集成的故障切换控制器配置允许自动故障切换。

你可能感兴趣的:(YARN体系结构指南)