资源调度策略
Yarn既然是一个分布式资源调度框架,管理着节点上的计算资源,那它分配这些资源的时候,便会存在调度策略。
而Yarn的调度策略有三种:FIFO调度、容量调度、公平调度。接下来,会依次对这几种调度器进行讲解。
FIFO调度器
FIFO Scheduler(先进先出调度器),这种调度器其实已经耳熟能详了,它将所有任务放入一个队列,先进队列的先获得资源,排在后面的任务只有等待,总的原则就是先到先得。
虽然这种调度策略,实现起来非常简单;但它因为只有单个队列,无法交叉运行任务、灵活性差,紧急任务无法插队,耗时长的任务拖慢耗时短的任务,对紧急任务、小任务不友好。
Yarn在全局上,FIFO已经不再推荐使用,但它依然被保留为三种可选的调度策略之一;而且它在调度策略为容量调度器、公平调度器时,可作为单队列内部的调度方案。
容量调度器
Capacity Scheduler(容量调度器)的核心思想是:提前做预算,在预算指导下分享集群资源。Yarn默认的调度策略。
既然FIFO单队列对紧急、耗时短的任务不友好,使得这些任务无法立即执行,那么就划分多个队列,用于提交不同的任务,并对这些队列提前预分配资源,可以按照百分比来分配,也可以按照容量来分配。现在