Currently, the fair-scheduler supports two modes, default queue or individual queue for each user.
Apparently, the default queue is not a good option, because the resources cannot be managed for each user or group.
However, individual queue for each user is not good enough. Especially when connecting yarn with hive. There will be increasing hive users in a corporate environment. If we create a queue for a user, the resource management will be hard to maintain.
I think the problem can be solved like this:
1. Define user->queue mapping in Fair-Scheduler.xml. Inside each queue, use aclSubmitApps to control user's ability.
2. Each time a user submit an app to yarn, if the user has mapped to a queue, the app will be scheduled to that queue; otherwise, the app will be submitted to default queue.
3. If the user cannot pass aclSubmitApps limits, the app will not be accepted.