@InterfaceAudience.Private public class UsersManager extends Object implements AbstractUsersManager
UsersManager tracks users in the system and its respective data
 structures.| Modifier and Type | Class and Description | 
|---|---|
| static class  | UsersManager.UserUser class stores all user related resource usage, application details. | 
| Constructor and Description | 
|---|
| UsersManager(QueueMetrics metrics,
            LeafQueue lQueue,
            RMNodeLabelsManager labelManager,
            CapacitySchedulerContext scheduler,
            org.apache.hadoop.yarn.util.resource.ResourceCalculator resourceCalculator)UsersManager Constructor. | 
| Modifier and Type | Method and Description | 
|---|---|
| void | activateApplication(String user,
                   org.apache.hadoop.yarn.api.records.ApplicationId applicationId)An application has new outstanding requests. | 
| void | deactivateApplication(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(String userName,
                                      org.apache.hadoop.yarn.api.records.Resource clusterResource,
                                      String nodePartition,
                                      SchedulingMode schedulingMode)Get computed user-limit for all ACTIVE users in this queue. | 
| org.apache.hadoop.yarn.api.records.Resource | getComputedResourceLimitForAllUsers(String userName,
                                   org.apache.hadoop.yarn.api.records.Resource clusterResource,
                                   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(String label) | 
| UsersManager.User | getUser(String userName)Get user object for given user name. | 
| UsersManager.User | getUserAndAddIfAbsent(String userName)Get and add user if absent. | 
| int | getUserLimit()Get configured user-limit. | 
| float | getUserLimitFactor()Get configured user-limit factor. | 
| Map<String,UsersManager.User> | getUsers() | 
| ArrayList<UserInfo> | getUsersInfo() | 
| void | removeUser(String userName)Remove user. | 
| void | setUserLimit(int userLimit)Set configured user-limit. | 
| void | setUserLimitFactor(float userLimitFactor)Set configured user-limit factor. | 
| void | updateUsageRatio(String partition,
                org.apache.hadoop.yarn.api.records.Resource clusterResource)Update new usage ratio. | 
| UsersManager.User | updateUserResourceUsage(String userName,
                       org.apache.hadoop.yarn.api.records.Resource resource,
                       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, LeafQueue lQueue, RMNodeLabelsManager labelManager, CapacitySchedulerContext scheduler, org.apache.hadoop.yarn.util.resource.ResourceCalculator resourceCalculator)
metrics - Queue MetricslQueue - Leaf Queue ObjectlabelManager - Label Manager instancescheduler - Capacity Scheduler ContextresourceCalculator - rcpublic int getUserLimit()
public void setUserLimit(int userLimit)
userLimit - user limitpublic float getUserLimitFactor()
public void setUserLimitFactor(float userLimitFactor)
userLimitFactor - User Limit factor.public float getUsageRatio(String label)
public void userLimitNeedsRecompute()
public Map<String,UsersManager.User> getUsers()
public UsersManager.User getUser(String userName)
userName - User Namepublic void removeUser(String userName)
userName - User Namepublic UsersManager.User getUserAndAddIfAbsent(String userName)
userName - User Namepublic ArrayList<UserInfo> getUsersInfo()
public org.apache.hadoop.yarn.api.records.Resource getComputedResourceLimitForActiveUsers(String userName, org.apache.hadoop.yarn.api.records.Resource clusterResource, 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(String userName, org.apache.hadoop.yarn.api.records.Resource clusterResource, 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(String partition, org.apache.hadoop.yarn.api.records.Resource clusterResource)
partition - Node partitionclusterResource - Cluster Resourcepublic void activateApplication(String user, org.apache.hadoop.yarn.api.records.ApplicationId applicationId)
AbstractUsersManageractivateApplication in interface AbstractUsersManageruser - application userapplicationId - activated applicationpublic void deactivateApplication(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(String userName, org.apache.hadoop.yarn.api.records.Resource resource, String nodePartition, boolean isAllocate)
userName - Name of the userresource - Resource to increment/decrementnodePartition - Node labelisAllocate - Indicate whether to allocate or release resourcepublic void updateUserWeights()
public int getNumActiveUsersWithOnlyPendingApps()
Copyright © 2008–2023 Apache Software Foundation. All rights reserved.