纱线容量调度程序:在用户和队列之间共享资源



我在设置以下调度程序排队参数时遇到一些问题:

有 2 个队列开发和生产

  • 根 100%

    • 开发 30%

    • 产品 70%

(如果只使用一个,它应该充当集群的 100%(

每个队列由多个用户使用,资源应平均共享,但是当只有一个用户存在(在每个队列中(时,它应该使用队列的全部容量。如果用户单独在集群中,则应使用 100% 的集群,以防第二个用户加入,调度程序应共享可用资源

我现在拥有的示例流程:

  1. 群集没有作业

  2. 用户 队列 Dev 的提交作业(它现在使用 100% 的群集(

  3. 用户 B 在队列 Dev 上提交作业(它挂起为已接受并等待第一个作业完成(

我想要什么:

在这种情况下,由于第二个作业位于同一队列中,因此每个作业都应接收队列的 50%,即集群的 100%。

然后,如果另一个作业进入生产队列(生产上的 2 个作业将共享 70%(每个 35%(,开发上的一个作业将共享 30%(

在另一种情况下,如果作业进入另一个队列(每个队列总共 1 个(,则容量应为 30,70

基于阿帕奇·安巴里

版本 2.6.1.5

作业 B 必须等待作业 A 完成。据我所知,没有办法在同一个 YARN 队列上重新分配负载。

如果启用了抢占 (https://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.6.5/bk_yarn-resource-management/content/preemption.html(,则生产作业将优先处理,并且确实应该占用 70% 的资源。至于开发队列,先进先得。

正如哈罗德所说

无法在同一 YARN 队列上重新分配负载

但是如果你为每个用户在里面做子队列,它可以工作,但你必须为每个用户管理它,(我们是小公司,用户很少,所以它是可管理的(

  • 根 100%
  • 产品 70%
    • 用户1 25%(70 个中的 25 个(
    • 用户2 25%(70 个中的 25 个(
    • 用户3 25%(70 个中的 25 个(
    • 用户4 25%(70 个中的 25 个(

我在网格上配置了此方案,但仍在寻找更好的方法

相关内容

  • 没有找到相关文章

最新更新