Yarn的队列调度策略主要分三种:FIFO、Capacity调度、Fair调度。
- FIFO调度策略:为先进去的任务分配资源,后入的任务等待前面任务完成才能获得资源。(大任务可能导致后续任务饿死)
- Capacity调度策略:将集群资源分为一条条队列,每个队列包含一定百分比资源。每个队列中任务采取FIFO的调度策略。在某些队列资源宽裕的情况下,允许跨队列申请资源,同时允许抢占机制。当其他队列任务使用了当前队列任务资源时,当前队列任务在等待一定时间后,允许抢占该队列资源(将改队列内不属于其他队列任务的Container杀死)。
- Fair调度策略:n个任务情况下,每个任务占据1/n份额的资源。在某任务结束后,该任务资源会被其余资源瓜分,每个任务占据1/(n-1)份资源。与Capacity一样也将集群分为队列且允许抢占机制。不同的是队列内部的资源调度同时允许FIFO和Fair调度。
参考资料
- https://blog.csdn.net/suifeng3051/article/details/49508261 (主要概述了该文章内容,该文章讲述的更清晰、详细)