YARN Fair Scheduler(公平调度器) 是 Apache Hadoop YARN 中三种主要的资源调度器之一(另外两种是 FIFO Scheduler 和 Capacity Scheduler)。它的核心设计理念是:随着时间的推移,让所有运行在集群中的应用(Application)能够公平地获取计算资源(内存和 CPU)。 它是为了解决多用户、多任务共享集群时的资源分配问题而诞生的,非常适合多租户的生产环境。 以下是关于 Fair Scheduler 的详细解析: --- 1. 核心工作原理 Fair Scheduler 的基本表现是: 当集群中只有一个应用在运行时:该应用可以独占整个集群的所有资源。 当有新的应用提交时:调度器会动态地将释放出来的空闲资源分配给新应用,直到各个应用获得的资源量达到“公平”的比例。 举个通俗的例子: 假设集群总内存为 100GB。 1. 用户 A 提交了任务 1,此时集群空闲,任务 1 独占 100GB 资源。 2. 用户 B 提交了任务 2,调度器开始调整。任务 1 运行完毕的容器(Container)释放资源后,会优先分给任务 2...