Hadoop中运行作业的顺序,由调度器来决定。Hadoop有三种作业调度器。
1 FIFO 先入先出调度器
hadoop中默认的调度器,采用先进先出的原则
先按照作业的优先级,优先级相同的再按照作业的提交顺序,运行作业。
缺点:某个作业执行时间较长,其他的作业就只能等待。
2 Capacity Scheduler(容量调度器)
选择占用资源小,优先级高的先执行
计算每个队列中正在运行的任务数与其应该分得的计算资源之间的比值,选择一个该比值最小的队列;然后按以下策略选择该队列中一个作业:按照作业优先级和提交时间顺序选择,同时考虑用户资源量限制和内存限制。
3 公平调度器
同一队列中的作业公平共享队列中所有资源
公平调度器的目的是让所有用户公平地共享集群中的资源,让提交的作业获取等量的集群共享资源。
每个用户都拥有一个作业池,公平调度器按照用户数,将资源公平地分到这些作业池里,所以每个用户的作业池里的资源时相同的。一个用户提交的作业,都会放到作业池中,这些作业共享作业池中的资源。