Hadoop YARN是什么?它的作用是什么?

YARN是Hadoop 2.0中的资源管理框架,全称为Yet Another Resource Negotiator。它继承了MapReduce框架的资源调度与作业监控功能,但提供了一套更加通用的资源管理和作业监控架构。
YARN的主要作用是:

  1. 资源管理:YARN为Hadoop集群中的各个计算框架和应用提供计算资源(内存、CPU等),实现多租户和资源共享。
  2. 作业调度:YARN可以在集群资源允许的范围内接收并调度各类作业(MapReduce、Spark、Flink等)的运行。
  3. 监控:YARN负责监控集群中的所有应用并管理其生命周期,实现高可用运行。当应用失败时可以进行故障转移与恢复。

YARN架构包含了ResourceManager(资源管理器)、NodeManager(节点管理器)、ApplicationMaster(应用管理器)和Container(容器)等组件。

ResourceManager负责整个集群的资源管理和分配。它通过和NodeManager交互来获得当前集群的资源情况,并在应用运行时进行资源的分配与调度。

NodeManager运行在集群每台机器上,负责单个节点上的资源管理及提供相关信息给ResourceManager。它还负责对单个节点上的Container进行监控与管理。

ApplicationMaster为每个应用的代理,负责向ResourceManager申请资源并监控容器的运行。它运行在一个container中,启动后首先向ResourceManger注册并申请运行所需的资源。

Container是YARN中分配给应用的一块资源,包括一定的内存、CPU等。ApplicationMaster会在这些Container上启动应用程序或任务。

YARN为Hadoop集群提供了统一的资源管理与作业调度平台,支持MapReduce、Spark、Flink等各种分布式计算框架。