YARN是Hadoop v2.0 引入的核心组件。YARN 从某种那个意义上来说应该算做是一个云操作系统,它负责集群的资源管理和任务调度,在 YARN 之上可以开发各类的应用程序,例如批处理 MapReduce, 内存处理 Spark, 流式处理 Storm 等等。这些应用可以同时利用 Hadoop 集群的计算能力和丰富的数据存储模型,共享同一个 Hadoop 集群和驻留在集群上的数据。此外,这些新的框架还可以利用 YARN 的资源管理器,提供新的应用管理器实现。
YARN支持多种计算框架
我们可以把 YARN 视为 Hadoop 生态系统的大脑或者说云操作系统。
ResourceManager(RM)是一个全局的资源管理器,负责整个系统的资源管理和分配。
它主要由两个组件构成:调度器(Scheduler)和应用程序管理器(Applications Manager)
调度器(Scheduler)
调度器负责将资源分配给各种正在运行的应用程序。而资源分配单位用一个抽象概念“资源容器”(Resource Container, 简称 Container)来表示。container下面再具体介绍
调度器是纯调度程序。意味着不会对应用程序执行任何状态监控。也不负责重新启动因执行失败或硬件故障导致的失败任务
它有一个可插拔的策略插件,负责在各种应用之间划分集群资源。有两个这样的插件: Capacity Scheduler 和 Fair Scheduler
应用程序管理器(Applications Manager)
hdfs有自己的框架,yarn也有自己的框架,但这两个框架是紧密结合的,比如namenode上启动RM、DataNode上启动NM