理想情况下,我们应用对yarn资源的请求应该立刻被满足,但是实际上,资源有限。特别是很忙的集群。
调度本身就是一大难题,很难找到完美的解决方案,所以yarn提供了三种调度器
1.FIFO Scheduler
FIFO = first in first out 先进先出 (队列)
这种调度把应用提交按顺序排成一个队列,先进先出的队列,在进行资源分配的时候,先给队列中最头部的应用分配资源,等到应用满足了,再给下一个分配,以此类推。
问题:大的应用可能会占用所有的资源,造成阻塞,不适合集群
2. Capacity Scheduler
专门有一个队列来运行小任务,但是为小任务专门设置的队列也会占用一定的资源,会导致大任务的执行时间落后于FIFO