在 Apache Hadoop YARN 中,自带了 三种 最常见的资源调度器(Scheduler)。它们主要用于解决在有限的集群资源下,如何合理地为多个应用程序(如 MapReduce、Spark、Flink 任务)分配资源的问题。 这三种调度器分别是:FIFO Scheduler(先进先出调度器)、Capacity Scheduler(容量调度器) 和 Fair Scheduler(公平调度器)。 以下是它们的详细介绍和对比: --- 1. FIFO Scheduler(先进先出调度器) 这是 YARN 中最基础、最简单的调度器。 工作原理:将所有的应用程序放在一个单一的队列中,按照任务提交的时间顺序(先进先出)来分配资源。只有当排在前面的任务执行完毕(或者前面任务所需的资源已经满足),才会给下一个任务分配资源。 优点: 逻辑简单,极易理解。 不需要复杂的配置。 调度器本身的系统开销极小。 缺点: 极不适合多租户/共享集群。 大任务阻塞小任务:如果队列头部是一个需要消耗大量资源且运行时间极长的“大任务”,后面的“小任务”即使只需要很少的资源,也必须死等,导致系统响应时间极差。...