Yarn调度器和调度算法
目前,Hadoop 作业调度器主要有三种:
- FIFO
- 容量调度器(Capacity Scheduler, Apache Hadoop2.7.2 默认的资源调度器)
- 公平调度器(Fair Scheduler, CDH框架默认的资源调度器)
默认调度器可见配置文件
// Apache hadoop3.1.3 yarn=default.xml文件
// http://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-common/yarn-default.xml
The class to use as the resource scheduler. yarn.resourcemanager.scheduler.class org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler
一、FIFO
如果只有三个task的资源,会先给job1的一部分map task,剩余的map task继续等。
二、容量调度器(Capacity Scheduler)
Capacity Scheduler 是 Yahoo 开发的多用户调度器。1、多队列:每个队列可配置一定的资源量,每个队列采用FIFO调度策略。
2、容量保证:管理员可为每个队列设置资源最低保证和资源使用上限。
3、灵活性:如果一个队列中的资源有剩余,可以暂时共享给那些需要资源的队列,而一旦该队列有新的应用程序提交,则其他队列借调的资源会归还给该队列。
4、多租户(ss、cls):
支持多用户共享集群和多应用程序同时运行。
为了防止同一个用户的作业独占队列中的资源,该调度器会对同一用户提交的作业所占资源量进行限定。