我们如何将来自组名称与队列名称不同的用户的所有作业映射到默认队列?
使用yarn.sscheduler.capacity.queue-mappings我们知道我们可以使用:
<name>yarn.scheduler.capacity.queue-mappings</name>
<value>u:user2:%primary_group</value>
<description>user2 is mapped to queue name same as primary group</description>
</property>
或
<property>
<name>yarn.scheduler.capacity.queue-mappings</name>
<value>g:group1:queue2</value>
<description>group1 is mapped to queue2</description>
</property>
但是,如果我的用户组没有具有相同名称的队列,会发生什么?如何将所有这些作业映射到默认队列?
使用提到的第二个选项g:group1:queue2
,用户组名称和队列名称不必相同。除此之外,我认为问题更多的是当用户组成员资格都不匹配队列时,如何将用户映射到default
队列。以下是选项
- 如果定义了
yarn.root.default
队列,它将被提交到该队列 - 否则,您可以定义默认队列,假设队列名称为
my_default_queue
,并将映射定义为属性yarn.scheduler.capacity.queue-mappings
的最后一个选项
<property>
<name>yarn.scheduler.capacity.queue-mappings</name>
<value>g:group1:queue2,u:%user:my_default_queue</value>
</property>
确保将默认映射定义为最后一个选项,以便在前面的映射都不成功时进行检查。