公平调度是以pool为单位分配任务slots的,容量调度以queue的方式分配tasktracker的,当都只有一个job的时候,两种调度器都可以利用整个集群的资源,在每个pool内部可以是以FIFO方式调度也可以是公平方式调度,但是在queue内部只能是以FIFO方式调度,这是公平调度和容量调度的一个区别,虽然在queue内部可以设置优先级但是并不支持抢占,在pool内部是支持抢占的,就是可以为某个pool(通常是生产上的用户)分配最低的任务slot,当这个pool得不到最低的资源的时候他就会kill其他的job的task以使自己获得最低的资源,这并不会引起其他的job的失败,因为job也是master-slaver的结构,也是容错的
PS(hadoop权威指南中也描述过公平调度实际上也支持作业内QUEUE的FIFO作业调度使其类似于容量调度)
时间: 2024-10-10 14:40:46