YARN 的 Capacity Scheduler(容量调度器) 是 Hadoop YARN 中最核心、在企业中使用最广泛的资源调度器之一(特别是 Hortonworks 和目前的 Cloudera CDP 默认使用的调度器)。 它的核心设计思想是“在保证多租户(多个团队/部门)最低资源容量的前提下,最大化集群的资源利用率”。 以下是对 Capacity Scheduler 的全面解析: --- 1. 核心设计理念 可以将 Capacity Scheduler 想象成公司的年度预算分配机制: 基础保障(Capacity): 每个部门(如研发部、市场部)都有自己固定的预算(资源百分比)。只要你需要,这部分资源一定能给你。 弹性共享(Elasticity): 如果市场部今天没有用完他们的预算,研发部可以“借用”这部分空闲资源,从而避免集群资源闲置。 资源抢占(Preemption): 当市场部突然需要用资源时,YARN 会要求研发部归还借用的资源;如果研发部不主动归还,YARN 会强制杀死研发部的部分任务,把资源还给市场部。 --- 2. 核心特性 多租户(Multi-tenancy...