Details
-
Sub-task
-
Status: Resolved
-
Minor
-
Resolution: Invalid
-
None
-
None
-
None
-
None
Description
AbstractCSQueue#hasAccess checks if a certain user with an ACL has permission to submit an app to the queue.
Checking the permission itself is performed by calling ConfiguredYarnAuthorizer#checkPermission.
Interestingly, all queue objects have a reference to a YarnAuthorizationProvider instance.
What looks weird is how the authorizer is initialized: https://github.com/apache/hadoop/blob/ac0a4e7f589e7280268013c56339b3b257d332a0/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/AbstractCSQueue.java#L428
It just calls YarnAuthorizationProvider.getInstance with the Configuration object as an argument so actually, all queue objects have an instance constructed with the same configuration, and the getInstance method does not gather any queue-specific configuration value from the object so this is a waste of memory.