Class RouterRMAdminService

java.lang.Object
org.apache.hadoop.service.AbstractService
org.apache.hadoop.yarn.server.router.rmadmin.RouterRMAdminService
All Implemented Interfaces:
Closeable, AutoCloseable, org.apache.hadoop.service.Service, org.apache.hadoop.tools.GetUserMappingsProtocol, org.apache.hadoop.yarn.server.api.ResourceManagerAdministrationProtocol

public class RouterRMAdminService extends org.apache.hadoop.service.AbstractService implements org.apache.hadoop.yarn.server.api.ResourceManagerAdministrationProtocol
RouterRMAdminService is a service that runs on each router that can be used to intercept and inspect ResourceManagerAdministrationProtocol messages from client to the cluster resource manager. It listens ResourceManagerAdministrationProtocol messages from the client and creates a request intercepting pipeline instance for each client. The pipeline is a chain of interceptor instances that can inspect and modify the request/response as needed. The main difference with AMRMProxyService is the protocol they implement.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
    Private structure for encapsulating RequestInterceptor and user instances.

    Nested classes/interfaces inherited from interface org.apache.hadoop.service.Service

    org.apache.hadoop.service.Service.STATE
  • Field Summary

    Fields inherited from interface org.apache.hadoop.tools.GetUserMappingsProtocol

    versionID
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    org.apache.hadoop.yarn.server.api.protocolrecords.AddToClusterNodeLabelsResponse
    addToClusterNodeLabels(org.apache.hadoop.yarn.server.api.protocolrecords.AddToClusterNodeLabelsRequest request)
     
    org.apache.hadoop.yarn.server.api.protocolrecords.BatchSaveFederationQueuePoliciesResponse
    batchSaveFederationQueuePolicies(org.apache.hadoop.yarn.server.api.protocolrecords.BatchSaveFederationQueuePoliciesRequest request)
     
    org.apache.hadoop.yarn.server.api.protocolrecords.CheckForDecommissioningNodesResponse
    checkForDecommissioningNodes(org.apache.hadoop.yarn.server.api.protocolrecords.CheckForDecommissioningNodesRequest checkForDecommissioningNodesRequest)
     
    This method creates and returns reference of the first interceptor in the chain of request interceptor instances.
    org.apache.hadoop.yarn.server.api.protocolrecords.DeleteFederationApplicationResponse
    deleteFederationApplication(org.apache.hadoop.yarn.server.api.protocolrecords.DeleteFederationApplicationRequest request)
     
    org.apache.hadoop.yarn.server.api.protocolrecords.DeleteFederationQueuePoliciesResponse
    deleteFederationPoliciesByQueues(org.apache.hadoop.yarn.server.api.protocolrecords.DeleteFederationQueuePoliciesRequest request)
     
    org.apache.hadoop.yarn.server.api.protocolrecords.DeregisterSubClusterResponse
    deregisterSubCluster(org.apache.hadoop.yarn.server.api.protocolrecords.DeregisterSubClusterRequest request)
     
    org.apache.hadoop.yarn.server.api.protocolrecords.GetSubClustersResponse
    getFederationSubClusters(org.apache.hadoop.yarn.server.api.protocolrecords.GetSubClustersRequest request)
     
     
     
    Gets the Request interceptor chains for all the users.
    org.apache.hadoop.ipc.Server
     
    org.apache.hadoop.yarn.server.api.protocolrecords.QueryFederationQueuePoliciesResponse
    listFederationQueuePolicies(org.apache.hadoop.yarn.server.api.protocolrecords.QueryFederationQueuePoliciesRequest request)
     
    org.apache.hadoop.yarn.server.api.protocolrecords.NodesToAttributesMappingResponse
    mapAttributesToNodes(org.apache.hadoop.yarn.server.api.protocolrecords.NodesToAttributesMappingRequest request)
     
    org.apache.hadoop.yarn.server.api.protocolrecords.RefreshAdminAclsResponse
    refreshAdminAcls(org.apache.hadoop.yarn.server.api.protocolrecords.RefreshAdminAclsRequest request)
     
    org.apache.hadoop.yarn.server.api.protocolrecords.RefreshClusterMaxPriorityResponse
    refreshClusterMaxPriority(org.apache.hadoop.yarn.server.api.protocolrecords.RefreshClusterMaxPriorityRequest request)
     
    org.apache.hadoop.yarn.server.api.protocolrecords.RefreshNodesResponse
    refreshNodes(org.apache.hadoop.yarn.server.api.protocolrecords.RefreshNodesRequest request)
     
    org.apache.hadoop.yarn.server.api.protocolrecords.RefreshNodesResourcesResponse
    refreshNodesResources(org.apache.hadoop.yarn.server.api.protocolrecords.RefreshNodesResourcesRequest request)
     
    org.apache.hadoop.yarn.server.api.protocolrecords.RefreshQueuesResponse
    refreshQueues(org.apache.hadoop.yarn.server.api.protocolrecords.RefreshQueuesRequest request)
     
    org.apache.hadoop.yarn.server.api.protocolrecords.RefreshServiceAclsResponse
    refreshServiceAcls(org.apache.hadoop.yarn.server.api.protocolrecords.RefreshServiceAclsRequest request)
     
    org.apache.hadoop.yarn.server.api.protocolrecords.RefreshSuperUserGroupsConfigurationResponse
    refreshSuperUserGroupsConfiguration(org.apache.hadoop.yarn.server.api.protocolrecords.RefreshSuperUserGroupsConfigurationRequest request)
     
    org.apache.hadoop.yarn.server.api.protocolrecords.RefreshUserToGroupsMappingsResponse
    refreshUserToGroupsMappings(org.apache.hadoop.yarn.server.api.protocolrecords.RefreshUserToGroupsMappingsRequest request)
     
    org.apache.hadoop.yarn.server.api.protocolrecords.RemoveFromClusterNodeLabelsResponse
    removeFromClusterNodeLabels(org.apache.hadoop.yarn.server.api.protocolrecords.RemoveFromClusterNodeLabelsRequest request)
     
    org.apache.hadoop.yarn.server.api.protocolrecords.ReplaceLabelsOnNodeResponse
    replaceLabelsOnNode(org.apache.hadoop.yarn.server.api.protocolrecords.ReplaceLabelsOnNodeRequest request)
     
    org.apache.hadoop.yarn.server.api.protocolrecords.SaveFederationQueuePolicyResponse
    saveFederationQueuePolicy(org.apache.hadoop.yarn.server.api.protocolrecords.SaveFederationQueuePolicyRequest request)
     
    protected void
     
    protected void
     
    org.apache.hadoop.yarn.server.api.protocolrecords.UpdateNodeResourceResponse
    updateNodeResource(org.apache.hadoop.yarn.server.api.protocolrecords.UpdateNodeResourceRequest request)
     

    Methods inherited from class org.apache.hadoop.service.AbstractService

    close, getBlockers, getConfig, getFailureCause, getFailureState, getLifecycleHistory, getName, getServiceState, getStartTime, init, isInState, noteFailure, putBlocker, registerGlobalListener, registerServiceListener, removeBlocker, serviceInit, setConfig, start, stop, toString, unregisterGlobalListener, unregisterServiceListener, waitForServiceToStop

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • RouterRMAdminService

      public RouterRMAdminService()
  • Method Details

    • serviceStart

      protected void serviceStart() throws Exception
      Overrides:
      serviceStart in class org.apache.hadoop.service.AbstractService
      Throws:
      Exception
    • serviceStop

      protected void serviceStop() throws Exception
      Overrides:
      serviceStop in class org.apache.hadoop.service.AbstractService
      Throws:
      Exception
    • getServer

      @VisibleForTesting public org.apache.hadoop.ipc.Server getServer()
    • getInterceptorChain

      @VisibleForTesting public RouterRMAdminService.RequestInterceptorChainWrapper getInterceptorChain() throws IOException
      Throws:
      IOException
    • getPipelines

      @VisibleForTesting protected Map<String,RouterRMAdminService.RequestInterceptorChainWrapper> getPipelines()
      Gets the Request interceptor chains for all the users.
      Returns:
      the request interceptor chains.
    • createRequestInterceptorChain

      @VisibleForTesting protected RMAdminRequestInterceptor createRequestInterceptorChain()
      This method creates and returns reference of the first interceptor in the chain of request interceptor instances.
      Returns:
      the reference of the first interceptor in the chain
    • getGroupsForUser

      public String[] getGroupsForUser(String user) throws IOException
      Specified by:
      getGroupsForUser in interface org.apache.hadoop.tools.GetUserMappingsProtocol
      Throws:
      IOException
    • refreshQueues

      public org.apache.hadoop.yarn.server.api.protocolrecords.RefreshQueuesResponse refreshQueues(org.apache.hadoop.yarn.server.api.protocolrecords.RefreshQueuesRequest request) throws org.apache.hadoop.ipc.StandbyException, org.apache.hadoop.yarn.exceptions.YarnException, IOException
      Specified by:
      refreshQueues in interface org.apache.hadoop.yarn.server.api.ResourceManagerAdministrationProtocol
      Throws:
      org.apache.hadoop.ipc.StandbyException
      org.apache.hadoop.yarn.exceptions.YarnException
      IOException
    • refreshNodes

      public org.apache.hadoop.yarn.server.api.protocolrecords.RefreshNodesResponse refreshNodes(org.apache.hadoop.yarn.server.api.protocolrecords.RefreshNodesRequest request) throws org.apache.hadoop.ipc.StandbyException, org.apache.hadoop.yarn.exceptions.YarnException, IOException
      Specified by:
      refreshNodes in interface org.apache.hadoop.yarn.server.api.ResourceManagerAdministrationProtocol
      Throws:
      org.apache.hadoop.ipc.StandbyException
      org.apache.hadoop.yarn.exceptions.YarnException
      IOException
    • refreshSuperUserGroupsConfiguration

      public org.apache.hadoop.yarn.server.api.protocolrecords.RefreshSuperUserGroupsConfigurationResponse refreshSuperUserGroupsConfiguration(org.apache.hadoop.yarn.server.api.protocolrecords.RefreshSuperUserGroupsConfigurationRequest request) throws org.apache.hadoop.ipc.StandbyException, org.apache.hadoop.yarn.exceptions.YarnException, IOException
      Specified by:
      refreshSuperUserGroupsConfiguration in interface org.apache.hadoop.yarn.server.api.ResourceManagerAdministrationProtocol
      Throws:
      org.apache.hadoop.ipc.StandbyException
      org.apache.hadoop.yarn.exceptions.YarnException
      IOException
    • refreshUserToGroupsMappings

      public org.apache.hadoop.yarn.server.api.protocolrecords.RefreshUserToGroupsMappingsResponse refreshUserToGroupsMappings(org.apache.hadoop.yarn.server.api.protocolrecords.RefreshUserToGroupsMappingsRequest request) throws org.apache.hadoop.ipc.StandbyException, org.apache.hadoop.yarn.exceptions.YarnException, IOException
      Specified by:
      refreshUserToGroupsMappings in interface org.apache.hadoop.yarn.server.api.ResourceManagerAdministrationProtocol
      Throws:
      org.apache.hadoop.ipc.StandbyException
      org.apache.hadoop.yarn.exceptions.YarnException
      IOException
    • refreshAdminAcls

      public org.apache.hadoop.yarn.server.api.protocolrecords.RefreshAdminAclsResponse refreshAdminAcls(org.apache.hadoop.yarn.server.api.protocolrecords.RefreshAdminAclsRequest request) throws org.apache.hadoop.yarn.exceptions.YarnException, IOException
      Specified by:
      refreshAdminAcls in interface org.apache.hadoop.yarn.server.api.ResourceManagerAdministrationProtocol
      Throws:
      org.apache.hadoop.yarn.exceptions.YarnException
      IOException
    • refreshServiceAcls

      public org.apache.hadoop.yarn.server.api.protocolrecords.RefreshServiceAclsResponse refreshServiceAcls(org.apache.hadoop.yarn.server.api.protocolrecords.RefreshServiceAclsRequest request) throws org.apache.hadoop.yarn.exceptions.YarnException, IOException
      Specified by:
      refreshServiceAcls in interface org.apache.hadoop.yarn.server.api.ResourceManagerAdministrationProtocol
      Throws:
      org.apache.hadoop.yarn.exceptions.YarnException
      IOException
    • updateNodeResource

      public org.apache.hadoop.yarn.server.api.protocolrecords.UpdateNodeResourceResponse updateNodeResource(org.apache.hadoop.yarn.server.api.protocolrecords.UpdateNodeResourceRequest request) throws org.apache.hadoop.yarn.exceptions.YarnException, IOException
      Specified by:
      updateNodeResource in interface org.apache.hadoop.yarn.server.api.ResourceManagerAdministrationProtocol
      Throws:
      org.apache.hadoop.yarn.exceptions.YarnException
      IOException
    • refreshNodesResources

      public org.apache.hadoop.yarn.server.api.protocolrecords.RefreshNodesResourcesResponse refreshNodesResources(org.apache.hadoop.yarn.server.api.protocolrecords.RefreshNodesResourcesRequest request) throws org.apache.hadoop.yarn.exceptions.YarnException, IOException
      Specified by:
      refreshNodesResources in interface org.apache.hadoop.yarn.server.api.ResourceManagerAdministrationProtocol
      Throws:
      org.apache.hadoop.yarn.exceptions.YarnException
      IOException
    • addToClusterNodeLabels

      public org.apache.hadoop.yarn.server.api.protocolrecords.AddToClusterNodeLabelsResponse addToClusterNodeLabels(org.apache.hadoop.yarn.server.api.protocolrecords.AddToClusterNodeLabelsRequest request) throws org.apache.hadoop.yarn.exceptions.YarnException, IOException
      Specified by:
      addToClusterNodeLabels in interface org.apache.hadoop.yarn.server.api.ResourceManagerAdministrationProtocol
      Throws:
      org.apache.hadoop.yarn.exceptions.YarnException
      IOException
    • removeFromClusterNodeLabels

      public org.apache.hadoop.yarn.server.api.protocolrecords.RemoveFromClusterNodeLabelsResponse removeFromClusterNodeLabels(org.apache.hadoop.yarn.server.api.protocolrecords.RemoveFromClusterNodeLabelsRequest request) throws org.apache.hadoop.yarn.exceptions.YarnException, IOException
      Specified by:
      removeFromClusterNodeLabels in interface org.apache.hadoop.yarn.server.api.ResourceManagerAdministrationProtocol
      Throws:
      org.apache.hadoop.yarn.exceptions.YarnException
      IOException
    • replaceLabelsOnNode

      public org.apache.hadoop.yarn.server.api.protocolrecords.ReplaceLabelsOnNodeResponse replaceLabelsOnNode(org.apache.hadoop.yarn.server.api.protocolrecords.ReplaceLabelsOnNodeRequest request) throws org.apache.hadoop.yarn.exceptions.YarnException, IOException
      Specified by:
      replaceLabelsOnNode in interface org.apache.hadoop.yarn.server.api.ResourceManagerAdministrationProtocol
      Throws:
      org.apache.hadoop.yarn.exceptions.YarnException
      IOException
    • checkForDecommissioningNodes

      public org.apache.hadoop.yarn.server.api.protocolrecords.CheckForDecommissioningNodesResponse checkForDecommissioningNodes(org.apache.hadoop.yarn.server.api.protocolrecords.CheckForDecommissioningNodesRequest checkForDecommissioningNodesRequest) throws org.apache.hadoop.yarn.exceptions.YarnException, IOException
      Specified by:
      checkForDecommissioningNodes in interface org.apache.hadoop.yarn.server.api.ResourceManagerAdministrationProtocol
      Throws:
      org.apache.hadoop.yarn.exceptions.YarnException
      IOException
    • refreshClusterMaxPriority

      public org.apache.hadoop.yarn.server.api.protocolrecords.RefreshClusterMaxPriorityResponse refreshClusterMaxPriority(org.apache.hadoop.yarn.server.api.protocolrecords.RefreshClusterMaxPriorityRequest request) throws org.apache.hadoop.yarn.exceptions.YarnException, IOException
      Specified by:
      refreshClusterMaxPriority in interface org.apache.hadoop.yarn.server.api.ResourceManagerAdministrationProtocol
      Throws:
      org.apache.hadoop.yarn.exceptions.YarnException
      IOException
    • mapAttributesToNodes

      public org.apache.hadoop.yarn.server.api.protocolrecords.NodesToAttributesMappingResponse mapAttributesToNodes(org.apache.hadoop.yarn.server.api.protocolrecords.NodesToAttributesMappingRequest request) throws org.apache.hadoop.yarn.exceptions.YarnException, IOException
      Specified by:
      mapAttributesToNodes in interface org.apache.hadoop.yarn.server.api.ResourceManagerAdministrationProtocol
      Throws:
      org.apache.hadoop.yarn.exceptions.YarnException
      IOException
    • deregisterSubCluster

      public org.apache.hadoop.yarn.server.api.protocolrecords.DeregisterSubClusterResponse deregisterSubCluster(org.apache.hadoop.yarn.server.api.protocolrecords.DeregisterSubClusterRequest request) throws org.apache.hadoop.yarn.exceptions.YarnException, IOException
      Specified by:
      deregisterSubCluster in interface org.apache.hadoop.yarn.server.api.ResourceManagerAdministrationProtocol
      Throws:
      org.apache.hadoop.yarn.exceptions.YarnException
      IOException
    • saveFederationQueuePolicy

      public org.apache.hadoop.yarn.server.api.protocolrecords.SaveFederationQueuePolicyResponse saveFederationQueuePolicy(org.apache.hadoop.yarn.server.api.protocolrecords.SaveFederationQueuePolicyRequest request) throws org.apache.hadoop.yarn.exceptions.YarnException, IOException
      Specified by:
      saveFederationQueuePolicy in interface org.apache.hadoop.yarn.server.api.ResourceManagerAdministrationProtocol
      Throws:
      org.apache.hadoop.yarn.exceptions.YarnException
      IOException
    • batchSaveFederationQueuePolicies

      public org.apache.hadoop.yarn.server.api.protocolrecords.BatchSaveFederationQueuePoliciesResponse batchSaveFederationQueuePolicies(org.apache.hadoop.yarn.server.api.protocolrecords.BatchSaveFederationQueuePoliciesRequest request) throws org.apache.hadoop.yarn.exceptions.YarnException, IOException
      Specified by:
      batchSaveFederationQueuePolicies in interface org.apache.hadoop.yarn.server.api.ResourceManagerAdministrationProtocol
      Throws:
      org.apache.hadoop.yarn.exceptions.YarnException
      IOException
    • listFederationQueuePolicies

      public org.apache.hadoop.yarn.server.api.protocolrecords.QueryFederationQueuePoliciesResponse listFederationQueuePolicies(org.apache.hadoop.yarn.server.api.protocolrecords.QueryFederationQueuePoliciesRequest request) throws org.apache.hadoop.yarn.exceptions.YarnException, IOException
      Specified by:
      listFederationQueuePolicies in interface org.apache.hadoop.yarn.server.api.ResourceManagerAdministrationProtocol
      Throws:
      org.apache.hadoop.yarn.exceptions.YarnException
      IOException
    • deleteFederationApplication

      public org.apache.hadoop.yarn.server.api.protocolrecords.DeleteFederationApplicationResponse deleteFederationApplication(org.apache.hadoop.yarn.server.api.protocolrecords.DeleteFederationApplicationRequest request) throws org.apache.hadoop.yarn.exceptions.YarnException, IOException
      Specified by:
      deleteFederationApplication in interface org.apache.hadoop.yarn.server.api.ResourceManagerAdministrationProtocol
      Throws:
      org.apache.hadoop.yarn.exceptions.YarnException
      IOException
    • getFederationSubClusters

      public org.apache.hadoop.yarn.server.api.protocolrecords.GetSubClustersResponse getFederationSubClusters(org.apache.hadoop.yarn.server.api.protocolrecords.GetSubClustersRequest request) throws org.apache.hadoop.yarn.exceptions.YarnException, IOException
      Specified by:
      getFederationSubClusters in interface org.apache.hadoop.yarn.server.api.ResourceManagerAdministrationProtocol
      Throws:
      org.apache.hadoop.yarn.exceptions.YarnException
      IOException
    • deleteFederationPoliciesByQueues

      public org.apache.hadoop.yarn.server.api.protocolrecords.DeleteFederationQueuePoliciesResponse deleteFederationPoliciesByQueues(org.apache.hadoop.yarn.server.api.protocolrecords.DeleteFederationQueuePoliciesRequest request) throws org.apache.hadoop.yarn.exceptions.YarnException, IOException
      Specified by:
      deleteFederationPoliciesByQueues in interface org.apache.hadoop.yarn.server.api.ResourceManagerAdministrationProtocol
      Throws:
      org.apache.hadoop.yarn.exceptions.YarnException
      IOException