[
https://issues.apache.org/jira/browse/YARN-1864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13965855#comment-13965855
]
Andrey Stepachev commented on YARN-1864:
----------------------------------------
I've updated patch with three additional rules 'userMatch',
'primaryGroupMatch', and 'secondaryGroupMatch'.
Now testcase like this works:
{code}
@Test
public void testSpecifiedUserPolicyWithPrefix() throws Exception {
StringBuffer sb = new StringBuffer();
sb.append("<queuePlacementPolicy>");
sb.append(" <rule name='specified' parent='granted'/>");
sb.append(" <rule name='userMatch' parent='admin'
pattern='admin1|admin4'/>");
sb.append(" <rule name='primaryGroupMatch' parent='admin.primg'
pattern='admin2group.*'/>");
sb.append(" <rule name='secondaryGroupMatch' parent='admin.secg'
pattern='admin3subgroup1'/>");
sb.append(" <rule name='user' parent='guests'/>");
sb.append("</queuePlacementPolicy>");
QueuePlacementPolicy policy = parse(sb.toString());
assertEquals("root.granted.specifiedq",policy.assignAppToQueue("specifiedq",
"someuser"));
assertEquals("root.admin.admin1", policy.assignAppToQueue("default",
"admin1"));
assertEquals("root.admin.primg.admin2", policy.assignAppToQueue("default",
"admin2"));
assertEquals("root.admin.secg.admin3", policy.assignAppToQueue("default",
"admin3"));
assertEquals("root.guests.someuser", policy.assignAppToQueue("default",
"someuser"));
assertEquals("root.guests.otheruser", policy.assignAppToQueue("default",
"otheruser"));
{code}
> Fair Scheduler Dynamic Hierarchical User Queues
> -----------------------------------------------
>
> Key: YARN-1864
> URL: https://issues.apache.org/jira/browse/YARN-1864
> Project: Hadoop YARN
> Issue Type: New Feature
> Components: scheduler
> Reporter: Ashwin Shankar
> Labels: scheduler
> Attachments: YARN-1864-v1.txt
>
>
> In Fair Scheduler, we want to be able to create user queues under any parent
> queue in the hierarchy. For eg. Say user1 submits a job to a parent queue
> called root.allUserQueues, we want be able to create a new queue called
> root.allUserQueues.user1 and run user1's job in it.Any further jobs submitted
> by this user to root.allUserQueues will be run in this newly created
> root.allUserQueues.user1.
> This is very similar to the 'user-as-default' feature in Fair Scheduler which
> creates user queues under root queue. But we want the ability to create user
> queues under ANY parent queue.
> Why do we want this ?
> 1. Preemption : these dynamically created user queues can preempt each other
> if its fair share is not met. So there is fairness among users.
> User queues can also preempt other non-user leaf queue as well if below fair
> share.
> 2. Allocation to user queues : we want all the user queries(adhoc) to consume
> only a fraction of resources in the shared cluster. By creating this
> feature,we could do that by giving a fair share to the parent user queue
> which is then redistributed to all the dynamically created user queues.
--
This message was sent by Atlassian JIRA
(v6.2#6252)