YARN(Yet Another Resource Negotiator)是 Hadoop 2.x 中的资源管理器,用于管理集群中的资源和任务。YARN 由以下几个组件组成:
ResourceManager(RM)
ResourceManager 是 YARN 的核心组件,负责管理集群中的资源和任务。ResourceManager 通过调度器(Scheduler)来分配资源和任务,通过应用程序管理器(ApplicationMaster)来管理任务的执行。
NodeManager(NM)
NodeManager 是 YARN 的节点管理器,负责管理单个节点上的资源和任务。NodeManager 通过心跳机制向 ResourceManager 汇报节点的状态和资源使用情况,接收 ResourceManager 分配的任务,并启动和监控任务的执行。
ApplicationMaster(AM)
ApplicationMaster 是 YARN 的应用程序管理器,负责管理单个应用程序的执行。每个应用程序都有一个对应的 ApplicationMaster,它负责向 ResourceManager 请求资源,分配任务给 NodeManager,监控任务的执行,处理任务的失败和重试等。
Container
Container 是 YARN 的任务执行单元,它包含了任务的执行环境和资源,可以在 NodeManager 上启动和运行任务。每个任务都运行在一个独立的 Container 中,可以通过 ApplicationMaster 来管理和监控任务的执行。
Scheduler
Scheduler 是 YARN 的调度器,负责分配资源和任务。Scheduler 可以根据不同的调度策略来分配资源和任务,例如 FIFO、Capacity Scheduler、Fair Scheduler 等。
以上是 YARN 的主要组件,它们共同协作来管理集群中的资源和任务,实现高效的分布式计算和数据处理。