网上已经有一些对 Capacity Scheduler
和 Fair Scheduler
的比较, 如: Fair Scheduler与Capacity Scheduler比较. 但是从中看不出应该选择哪一个, 来对 YARN 管理的资源来做用户级的配置.
仔细对比了下官方文档 Capacity Scheduler 和 Fair Scheduler 中的配置项, 最终选择 Fair Scheduler
, 原因如下:
-
Fair Scheduler
的allocation file
– 一般为fair-scheduler.xml
, 每隔 10 秒会自动重新载入. 可以方便的更新配置. 而Capacity Scheduler
的配置文件更改后需要重启 YARN 才能生效. -
Fair Scheduler
支持对特定单个用户的配置, 有灵活 queue 分配方式. 如可以将 user 分配到和用户名相同的 queue. 而Capacity Scheduler
中的 queue 中对用户的配置会对该 queue 中所有的用户生效. -
Fair Scheduler
中对资源按实际值来配置, 如内存可以为 MB, vcore 的个数. 而Capacity Scheduler
对资源是按百分比控制. 当集群的范围有改动时, 可能需要更新对 queue 的资源分配比例.