org.apache.hadoop.yarn.server.nodemanager.containermanager
Class ContainerManagerImpl

java.lang.Object
  extended by org.apache.hadoop.service.AbstractService
      extended by org.apache.hadoop.service.CompositeService
          extended by org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl
All Implemented Interfaces:
Closeable, org.apache.hadoop.service.Service, org.apache.hadoop.service.ServiceStateChangeListener, org.apache.hadoop.yarn.api.ContainerManagementProtocol, org.apache.hadoop.yarn.event.EventHandler<ContainerManagerEvent>

public class ContainerManagerImpl
extends org.apache.hadoop.service.CompositeService
implements org.apache.hadoop.service.ServiceStateChangeListener, org.apache.hadoop.yarn.api.ContainerManagementProtocol, org.apache.hadoop.yarn.event.EventHandler<ContainerManagerEvent>


Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.hadoop.service.CompositeService
org.apache.hadoop.service.CompositeService.CompositeServiceShutdownHook
 
Nested classes/interfaces inherited from interface org.apache.hadoop.service.Service
org.apache.hadoop.service.Service.STATE
 
Field Summary
protected  LocalDirsHandlerService dirsHandler
           
protected  org.apache.hadoop.yarn.event.AsyncDispatcher dispatcher
           
 
Fields inherited from class org.apache.hadoop.service.CompositeService
STOP_ONLY_STARTED_SERVICES
 
Constructor Summary
ContainerManagerImpl(Context context, ContainerExecutor exec, DeletionService deletionContext, NodeStatusUpdater nodeStatusUpdater, NodeManagerMetrics metrics, org.apache.hadoop.yarn.server.security.ApplicationACLsManager aclsManager, LocalDirsHandlerService dirsHandler)
           
 
Method Summary
protected  void authorizeGetAndStopContainerRequest(org.apache.hadoop.yarn.api.records.ContainerId containerId, Container container, boolean stopRequest, org.apache.hadoop.yarn.security.NMTokenIdentifier identifier)
           
protected  void authorizeStartRequest(org.apache.hadoop.yarn.security.NMTokenIdentifier nmTokenIdentifier, org.apache.hadoop.yarn.security.ContainerTokenIdentifier containerTokenIdentifier)
           
protected  void authorizeUser(org.apache.hadoop.security.UserGroupInformation remoteUgi, org.apache.hadoop.yarn.security.NMTokenIdentifier nmTokenIdentifier)
           
 void cleanUpApplicationsOnNMShutDown()
           
 void cleanupContainersOnNMResync()
           
protected  ContainersLauncher createContainersLauncher(Context context, ContainerExecutor exec)
           
protected  LogHandler createLogHandler(org.apache.hadoop.conf.Configuration conf, Context context, DeletionService deletionService)
           
protected  ResourceLocalizationService createResourceLocalizationService(ContainerExecutor exec, DeletionService deletionContext)
           
 Map<String,ByteBuffer> getAuxServiceMetaData()
           
 boolean getBlockNewContainerRequestsStatus()
           
 ContainersMonitor getContainersMonitor()
           
 org.apache.hadoop.yarn.api.protocolrecords.GetContainerStatusesResponse getContainerStatuses(org.apache.hadoop.yarn.api.protocolrecords.GetContainerStatusesRequest request)
          Get a list of container statuses running on this NodeManager
 Context getContext()
           
protected  org.apache.hadoop.security.UserGroupInformation getRemoteUgi()
           
 void handle(ContainerManagerEvent event)
           
protected  org.apache.hadoop.yarn.security.NMTokenIdentifier selectNMTokenIdentifier(org.apache.hadoop.security.UserGroupInformation remoteUgi)
           
 void serviceInit(org.apache.hadoop.conf.Configuration conf)
           
protected  void serviceStart()
           
 void serviceStop()
           
 void setBlockNewContainerRequests(boolean blockNewContainerRequests)
           
 org.apache.hadoop.yarn.api.protocolrecords.StartContainersResponse startContainers(org.apache.hadoop.yarn.api.protocolrecords.StartContainersRequest requests)
          Start a list of containers on this NodeManager.
 void stateChanged(org.apache.hadoop.service.Service service)
           
 org.apache.hadoop.yarn.api.protocolrecords.StopContainersResponse stopContainers(org.apache.hadoop.yarn.api.protocolrecords.StopContainersRequest requests)
          Stop a list of containers running on this NodeManager.
protected  void updateNMTokenIdentifier(org.apache.hadoop.yarn.security.NMTokenIdentifier nmTokenIdentifier)
           
protected  org.apache.hadoop.yarn.security.ContainerTokenIdentifier verifyAndGetContainerTokenIdentifier(org.apache.hadoop.yarn.api.records.Token token, org.apache.hadoop.yarn.security.ContainerTokenIdentifier containerTokenIdentifier)
           
 
Methods inherited from class org.apache.hadoop.service.CompositeService
addIfService, addService, getServices, removeService
 
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, setConfig, start, stop, toString, unregisterGlobalListener, unregisterServiceListener, waitForServiceToStop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

dirsHandler

protected LocalDirsHandlerService dirsHandler

dispatcher

protected final org.apache.hadoop.yarn.event.AsyncDispatcher dispatcher
Constructor Detail

ContainerManagerImpl

public ContainerManagerImpl(Context context,
                            ContainerExecutor exec,
                            DeletionService deletionContext,
                            NodeStatusUpdater nodeStatusUpdater,
                            NodeManagerMetrics metrics,
                            org.apache.hadoop.yarn.server.security.ApplicationACLsManager aclsManager,
                            LocalDirsHandlerService dirsHandler)
Method Detail

serviceInit

public void serviceInit(org.apache.hadoop.conf.Configuration conf)
                 throws Exception
Overrides:
serviceInit in class org.apache.hadoop.service.CompositeService
Throws:
Exception

createLogHandler

protected LogHandler createLogHandler(org.apache.hadoop.conf.Configuration conf,
                                      Context context,
                                      DeletionService deletionService)

getContainersMonitor

public ContainersMonitor getContainersMonitor()

createResourceLocalizationService

protected ResourceLocalizationService createResourceLocalizationService(ContainerExecutor exec,
                                                                        DeletionService deletionContext)

createContainersLauncher

protected ContainersLauncher createContainersLauncher(Context context,
                                                      ContainerExecutor exec)

serviceStart

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

serviceStop

public void serviceStop()
                 throws Exception
Overrides:
serviceStop in class org.apache.hadoop.service.CompositeService
Throws:
Exception

cleanUpApplicationsOnNMShutDown

public void cleanUpApplicationsOnNMShutDown()

cleanupContainersOnNMResync

public void cleanupContainersOnNMResync()

getRemoteUgi

protected org.apache.hadoop.security.UserGroupInformation getRemoteUgi()
                                                                throws org.apache.hadoop.yarn.exceptions.YarnException
Throws:
org.apache.hadoop.yarn.exceptions.YarnException

selectNMTokenIdentifier

@InterfaceAudience.Private
protected org.apache.hadoop.yarn.security.NMTokenIdentifier selectNMTokenIdentifier(org.apache.hadoop.security.UserGroupInformation remoteUgi)

authorizeUser

protected void authorizeUser(org.apache.hadoop.security.UserGroupInformation remoteUgi,
                             org.apache.hadoop.yarn.security.NMTokenIdentifier nmTokenIdentifier)
                      throws org.apache.hadoop.yarn.exceptions.YarnException
Throws:
org.apache.hadoop.yarn.exceptions.YarnException

authorizeStartRequest

@InterfaceAudience.Private
protected void authorizeStartRequest(org.apache.hadoop.yarn.security.NMTokenIdentifier nmTokenIdentifier,
                                                               org.apache.hadoop.yarn.security.ContainerTokenIdentifier containerTokenIdentifier)
                              throws org.apache.hadoop.yarn.exceptions.YarnException
Parameters:
containerTokenIdentifier - of the container to be started
Throws:
org.apache.hadoop.yarn.exceptions.YarnException

startContainers

public org.apache.hadoop.yarn.api.protocolrecords.StartContainersResponse startContainers(org.apache.hadoop.yarn.api.protocolrecords.StartContainersRequest requests)
                                                                                   throws org.apache.hadoop.yarn.exceptions.YarnException,
                                                                                          IOException
Start a list of containers on this NodeManager.

Specified by:
startContainers in interface org.apache.hadoop.yarn.api.ContainerManagementProtocol
Throws:
org.apache.hadoop.yarn.exceptions.YarnException
IOException

verifyAndGetContainerTokenIdentifier

protected org.apache.hadoop.yarn.security.ContainerTokenIdentifier verifyAndGetContainerTokenIdentifier(org.apache.hadoop.yarn.api.records.Token token,
                                                                                                        org.apache.hadoop.yarn.security.ContainerTokenIdentifier containerTokenIdentifier)
                                                                                                 throws org.apache.hadoop.yarn.exceptions.YarnException,
                                                                                                        org.apache.hadoop.security.token.SecretManager.InvalidToken
Throws:
org.apache.hadoop.yarn.exceptions.YarnException
org.apache.hadoop.security.token.SecretManager.InvalidToken

updateNMTokenIdentifier

@InterfaceAudience.Private
protected void updateNMTokenIdentifier(org.apache.hadoop.yarn.security.NMTokenIdentifier nmTokenIdentifier)
                                throws org.apache.hadoop.security.token.SecretManager.InvalidToken
Throws:
org.apache.hadoop.security.token.SecretManager.InvalidToken

stopContainers

public org.apache.hadoop.yarn.api.protocolrecords.StopContainersResponse stopContainers(org.apache.hadoop.yarn.api.protocolrecords.StopContainersRequest requests)
                                                                                 throws org.apache.hadoop.yarn.exceptions.YarnException,
                                                                                        IOException
Stop a list of containers running on this NodeManager.

Specified by:
stopContainers in interface org.apache.hadoop.yarn.api.ContainerManagementProtocol
Throws:
org.apache.hadoop.yarn.exceptions.YarnException
IOException

getContainerStatuses

public org.apache.hadoop.yarn.api.protocolrecords.GetContainerStatusesResponse getContainerStatuses(org.apache.hadoop.yarn.api.protocolrecords.GetContainerStatusesRequest request)
                                                                                             throws org.apache.hadoop.yarn.exceptions.YarnException,
                                                                                                    IOException
Get a list of container statuses running on this NodeManager

Specified by:
getContainerStatuses in interface org.apache.hadoop.yarn.api.ContainerManagementProtocol
Throws:
org.apache.hadoop.yarn.exceptions.YarnException
IOException

authorizeGetAndStopContainerRequest

@InterfaceAudience.Private
protected void authorizeGetAndStopContainerRequest(org.apache.hadoop.yarn.api.records.ContainerId containerId,
                                                                             Container container,
                                                                             boolean stopRequest,
                                                                             org.apache.hadoop.yarn.security.NMTokenIdentifier identifier)
                                            throws org.apache.hadoop.yarn.exceptions.YarnException
Throws:
org.apache.hadoop.yarn.exceptions.YarnException

handle

public void handle(ContainerManagerEvent event)
Specified by:
handle in interface org.apache.hadoop.yarn.event.EventHandler<ContainerManagerEvent>

setBlockNewContainerRequests

public void setBlockNewContainerRequests(boolean blockNewContainerRequests)

getBlockNewContainerRequestsStatus

@InterfaceAudience.Private
public boolean getBlockNewContainerRequestsStatus()

stateChanged

public void stateChanged(org.apache.hadoop.service.Service service)
Specified by:
stateChanged in interface org.apache.hadoop.service.ServiceStateChangeListener

getContext

public Context getContext()

getAuxServiceMetaData

public Map<String,ByteBuffer> getAuxServiceMetaData()


Copyright © 2014 Apache Software Foundation. All Rights Reserved.