Yarn 原理与代码实例讲解
1.背景介绍
在大规模分布式系统中,资源管理和任务调度是一个关键的基础设施组件。Apache Hadoop YARN (Yet Another Resource Negotiator) 作为 Hadoop 的新一代资源管理和任务调度框架,旨在解决 MapReduce 1.0 中存在的可扩展性、集群利用率和多租户支持等问题。YARN 将资源管理和任务调度/监控分离,提供了一个通用的资源管理和调度框架,支持在同一个集群上运行多种类型的分布式应用程序。
2.核心概念与联系
YARN 的核心概念包括 ResourceManager、NodeManager、ApplicationMaster、Container 等,它们共同构建了一个高效、可扩展的分布式计算平台。
2.1 ResourceManager (RM)
ResourceManager 是整个 YARN 系统的核心组件,负责全局资源管理和调度。它包含两个主要组件:Scheduler 和 ApplicationsManager。
- Scheduler: 根据集群资源情况和应用程序优先级等因素,为应用程序分配资源容器。常用调度器有 FIFO、Fair Scheduler 和 Capacity Scheduler 等。
- ApplicationsManager: 负责接收新的应用程序提交,并与相应的 ApplicationMaster 进行通信协调应用程序执行。</