hadoop3.x yarn 调度策略:Fair Scheduler(公平调度)

介绍

Fair Scheduler,公平调度器,可以为所有的应用 平均公平 分配资源,公平 的 共享 集群中的资源

可以配置多个队列

官网:
https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/FairScheduler.html

提示:

  • Apache hadoop 默认是容量调度器
  • CDH hadoop 默认是公平调度器

公平共享

  1. 两个队列,各占集群 50% 的资源,如下图:

  2. 向 队列1 提交 app1,由于 队列2 空闲 ,app1 会 抢占 队列2 的资源,即:app1 会占用整个集群 100% 的资源

  3. 向 队列2 提交 app2,资源会动态调整,app1 和 app2 各占 50% 的资源

  4. 向 队列2 提交 app3,资源会动态调整,app2 和 app3 各占 25% 的资源。app1 占用资源不变

队列

默认有 default 队列,也可以 自定义队列

默认基于内存公平共享

如何指定 提交到哪个队列

有以下两种方式:

  • 提交应用时,通过参数 指定队列
  • 提交应用时,可以根据 登录linux的 用户名、用户组 自动分配队列

队列内的调度策略

每个队列可以拥有自己的调度策略:

  • FIFO:同一队列的应用,按照顺序一个一个执行,每次执行一个
  • FAIR:默认值,同一队列的应用,同时执行,公平共享该队列的资源
  • DRF

资源抢占

默认不抢占,开启抢占需要修改配置文件

权重

抢占资源多少,是可以配置的,称为 权重
如果没有设置,默认是 1,
如果权重相同,两个应用抢占资源占比相同

优点

  • 容量保证:为每个队列设置资源的上限和下限,保证每个队列不会占用整个集群

  • 弹性分配:如果一个队列中的资源有剩余,可暂时共享给其他队列

  • 多租户:支持多用户共享集群,多应用程序同时运行。

  • 动态修改:修改配置不需要重启

  • 按照提交作业的优先级和提交时间顺序分配资源

参考:
https://blog.csdn.net/candy_rainbow/article/details/102751888