AbstractUsersManager@Private public class UsersManager extends java.lang.Object implements AbstractUsersManager
UsersManager tracks users in the system and its respective data
structures.| Modifier and Type | Class | Description |
|---|---|---|
static class |
UsersManager.User |
User class stores all user related resource usage, application details.
|
| Constructor | Description |
|---|---|
UsersManager(QueueMetrics metrics,
AbstractLeafQueue lQueue,
RMNodeLabelsManager labelManager,
org.apache.hadoop.yarn.util.resource.ResourceCalculator resourceCalculator) |
UsersManager Constructor.
|
| Modifier and Type | Method | Description |
|---|---|---|
void |
activateApplication(java.lang.String user,
org.apache.hadoop.yarn.api.records.ApplicationId applicationId) |
An application has new outstanding requests.
|
void |
deactivateApplication(java.lang.String user,
org.apache.hadoop.yarn.api.records.ApplicationId applicationId) |
An application has no more outstanding requests.
|
org.apache.hadoop.yarn.api.records.Resource |
getComputedResourceLimitForActiveUsers(java.lang.String userName,
org.apache.hadoop.yarn.api.records.Resource clusterResource,
java.lang.String nodePartition,
SchedulingMode schedulingMode) |
Get computed user-limit for all ACTIVE users in this queue.
|
org.apache.hadoop.yarn.api.records.Resource |
getComputedResourceLimitForAllUsers(java.lang.String userName,
org.apache.hadoop.yarn.api.records.Resource clusterResource,
java.lang.String nodePartition,
SchedulingMode schedulingMode) |
Get computed user-limit for all users in this queue.
|
protected long |
getLatestVersionOfUsersState() |
|
int |
getNumActiveUsers() |
Get number of active users i.e.
|
int |
getNumActiveUsersWithOnlyPendingApps() |
|
float |
getUsageRatio(java.lang.String label) |
|
UsersManager.User |
getUser(java.lang.String userName) |
Get user object for given user name.
|
UsersManager.User |
getUserAndAddIfAbsent(java.lang.String userName) |
Get and add user if absent.
|
float |
getUserLimit() |
Get configured user-limit.
|
float |
getUserLimitFactor() |
Get configured user-limit factor.
|
java.util.Map<java.lang.String,UsersManager.User> |
getUsers() |
|
java.util.ArrayList<UserInfo> |
getUsersInfo() |
|
void |
removeUser(java.lang.String userName) |
Remove user.
|
void |
setUserLimit(float userLimit) |
Set configured user-limit.
|
void |
setUserLimitFactor(float userLimitFactor) |
Set configured user-limit factor.
|
void |
updateUsageRatio(java.lang.String partition,
org.apache.hadoop.yarn.api.records.Resource clusterResource) |
Update new usage ratio.
|
UsersManager.User |
updateUserResourceUsage(java.lang.String userName,
org.apache.hadoop.yarn.api.records.Resource resource,
org.apache.hadoop.yarn.api.records.Resource clusterResource,
java.lang.String nodePartition,
boolean isAllocate) |
During container allocate/release, ensure that all user specific data
structures are updated.
|
void |
updateUserWeights() |
|
void |
userLimitNeedsRecompute() |
Force UsersManager to recompute userlimit.
|
public UsersManager(QueueMetrics metrics, AbstractLeafQueue lQueue, RMNodeLabelsManager labelManager, org.apache.hadoop.yarn.util.resource.ResourceCalculator resourceCalculator)
metrics - Queue MetricslQueue - Leaf Queue ObjectlabelManager - Label Manager instanceresourceCalculator - rcpublic float getUserLimit()
public void setUserLimit(float userLimit)
userLimit - user limitpublic float getUserLimitFactor()
public void setUserLimitFactor(float userLimitFactor)
userLimitFactor - User Limit factor.@VisibleForTesting public float getUsageRatio(java.lang.String label)
public void userLimitNeedsRecompute()
public java.util.Map<java.lang.String,UsersManager.User> getUsers()
public UsersManager.User getUser(java.lang.String userName)
userName - User Namepublic void removeUser(java.lang.String userName)
userName - User Namepublic UsersManager.User getUserAndAddIfAbsent(java.lang.String userName)
userName - User Namepublic java.util.ArrayList<UserInfo> getUsersInfo()
public org.apache.hadoop.yarn.api.records.Resource getComputedResourceLimitForActiveUsers(java.lang.String userName,
org.apache.hadoop.yarn.api.records.Resource clusterResource,
java.lang.String nodePartition,
SchedulingMode schedulingMode)
userName - Name of user who has submitted one/more app to given queue.clusterResource - total cluster resourcenodePartition - partition nameschedulingMode - scheduling mode
RESPECT_PARTITION_EXCLUSIVITY/IGNORE_PARTITION_EXCLUSIVITYpublic org.apache.hadoop.yarn.api.records.Resource getComputedResourceLimitForAllUsers(java.lang.String userName,
org.apache.hadoop.yarn.api.records.Resource clusterResource,
java.lang.String nodePartition,
SchedulingMode schedulingMode)
userName - Name of user who has submitted one/more app to given queue.clusterResource - total cluster resourcenodePartition - partition nameschedulingMode - scheduling mode
RESPECT_PARTITION_EXCLUSIVITY/IGNORE_PARTITION_EXCLUSIVITYprotected long getLatestVersionOfUsersState()
public void updateUsageRatio(java.lang.String partition,
org.apache.hadoop.yarn.api.records.Resource clusterResource)
partition - Node partitionclusterResource - cluster resourcepublic void activateApplication(java.lang.String user,
org.apache.hadoop.yarn.api.records.ApplicationId applicationId)
AbstractUsersManageractivateApplication in interface AbstractUsersManageruser - application userapplicationId - activated applicationpublic void deactivateApplication(java.lang.String user,
org.apache.hadoop.yarn.api.records.ApplicationId applicationId)
AbstractUsersManagerdeactivateApplication in interface AbstractUsersManageruser - application userapplicationId - deactivated applicationpublic int getNumActiveUsers()
AbstractUsersManagergetNumActiveUsers in interface AbstractUsersManagerpublic UsersManager.User updateUserResourceUsage(java.lang.String userName, org.apache.hadoop.yarn.api.records.Resource resource, org.apache.hadoop.yarn.api.records.Resource clusterResource, java.lang.String nodePartition, boolean isAllocate)
userName - Name of the userresource - Resource to increment/decrementclusterResource - Cluster resource (for testing purposes only)nodePartition - Node labelisAllocate - Indicate whether to allocate or release resourcepublic void updateUserWeights()
@VisibleForTesting public int getNumActiveUsersWithOnlyPendingApps()
Copyright © 2008–2025 Apache Software Foundation. All rights reserved.