一文搞清yarn三种调度器

1. Yarn的三种调度器

1先进先出调度器FIFO
2容量调度器(默认)Capacity Scheduler
3公平调度器Fair Scheduler

2. 具体细节和调度算法

2.1 先进先出调度器FIFO

单队列根据作业的提交顺序先来先服务。一般不用

2.2 容量调度器(默认)Capacity Scheduler特点

在这里插入图片描述

1、多队列每个队列可配置一定的资源量每个队列采用FIFO调度策略。
2、容量保证管理员可为每个队列设置资源最低保证和资源使用上限。
3、灵活性如果一个队列中的资源有剩余可以暂时共享给那些需要资源的队列而一旦该队列有新的应用程序提交则其他队列借调的资源会归还给该队列。
4、多用户 支持多用户共享集群和多应用程序同时运行。为了防止同一个用户的作业独占队列中的资源该调度器会对同一用户提交的作业所占资源量进行限定。

2.3 容量调度第的资源分配算法

1、队列资源分配使用深度优先算法优先对资源使用率最低的队列分配资源。资源使用率已经使用的资源量除以最小队列资源容量
2、作业资源分配根据作业的优先级和提交时间分配
3、容器资源分配先按照容器的优先级分配若优先级相同再按照数据本地行原则分配。任务和数据在同意节点任务和数据在同一机架两者既不在同一节点也不在同一机架上

3. 公平调度器Fair Scheduler

在这里插入图片描述

3.1 特点与容量调度器一样

1、多队列支持多队列多作业
2、容量保证管理员可为每个队列设置资源最低保证和资源使用上限。
3、灵活性如果一个队列中的资源有剩余可以暂时共享给那些需要资源的队列而一旦该队列有新的应用程序提交则其他队列借调的资源会归还给该队列。
4、多用户 支持多用户共享集群和多应用程序同时运行。为了防止同一个用户的作业独占队列中的资源该调度器会对同一用户提交的作业所占资源量进行限定。

3.2 与容量调度器的不同之处

1、核心调度策略不同
容量调度器优先选择资源使用率最低的队列而公平调度器优先选择资源缺额比较大的队列。
缺额某一时刻一个作业应获资源和实际获取资源的差距叫“缺额”
2、每个队列的资源分配方式不同
容量FIFO(默认只考虑内存)、DRF策略(考虑内存和cpu)
公平FIFO(此时公平等同于容量)
FAIR策略基于最大最小公平算法实现的资源多路复用方式
DRFYarn默认只考虑内存资源该策略对不同应用不同资源(CPU和内存)进行一个不同比例的限制因为每个应用程序需求量不一样。

4. Yarn常见问题

4.1 创建多队列的好处

1因为担心员工不小心写递归死循环代码把所有资源全部耗尽。
2实现任务的降级使用特殊时期保证重要的任务队列资源充足。11.11 6.18 降级指的就是先紧着重要的任务占用资源执行。
业务部门1重要=》业务部门2比较重要=》下单一般=》购物车一般=》登录注册次要

4.2 在生产环境中你会怎么合理的创建多队列

1调度器默认就1 个default 队列不能满足生产要求。
2按照框架hive /spark/ flink 每个框架的任务放入指定的队列企业用的不是特别多
3按照业务模块登录注册、购物车、下单、业务部门1、业务部门2

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6