@InterfaceAudience.Public
@InterfaceStability.Stable
public interface ContainerManagementProtocol
The protocol between an ApplicationMaster and a
NodeManager to start/stop and increase resource of containers
and to get status of running containers.
If security is enabled the NodeManager verifies that the
ApplicationMaster has truly been allocated the container
by the ResourceManager and also verifies all interactions such
as stopping the container or obtaining status information for the container.
| Modifier and Type | Method and Description |
|---|---|
GetContainerStatusesResponse |
getContainerStatuses(GetContainerStatusesRequest request)
The API used by the
ApplicationMaster to request for current
statuses of Containers from the NodeManager. |
IncreaseContainersResourceResponse |
increaseContainersResource(IncreaseContainersResourceRequest request)
The API used by the
ApplicationMaster to request for
resource increase of running containers on the NodeManager. |
SignalContainerResponse |
signalToContainer(SignalContainerRequest request) |
StartContainersResponse |
startContainers(StartContainersRequest request)
The
ApplicationMaster provides a list of
StartContainerRequests to a NodeManager to
start Containers allocated to it using this interface. |
StopContainersResponse |
stopContainers(StopContainersRequest request)
The
ApplicationMaster requests a NodeManager to
stop a list of Containers allocated to it using this
interface. |
@InterfaceAudience.Public @InterfaceStability.Stable StartContainersResponse startContainers(StartContainersRequest request) throws YarnException, IOException
The ApplicationMaster provides a list of
StartContainerRequests to a NodeManager to
start Containers allocated to it using this interface.
The ApplicationMaster has to provide details such as allocated
resource capability, security tokens (if enabled), command to be executed
to start the container, environment for the process, necessary
binaries/jar/shared-objects etc. via the ContainerLaunchContext in
the StartContainerRequest.
The NodeManager sends a response via
StartContainersResponse which includes a list of
Containers of successfully launched Containers, a
containerId-to-exception map for each failed StartContainerRequest in
which the exception indicates errors from per container and a
allServicesMetaData map between the names of auxiliary services and their
corresponding meta-data. Note: None-container-specific exceptions will
still be thrown by the API method itself.
The ApplicationMaster can use
getContainerStatuses(GetContainerStatusesRequest) to get updated
statuses of the to-be-launched or launched containers.
request - request to start a list of containersYarnExceptionIOExceptionNMNotYetReadyException - This exception is thrown when NM starts from scratch but has not
yet connected with RM.@InterfaceAudience.Public @InterfaceStability.Stable StopContainersResponse stopContainers(StopContainersRequest request) throws YarnException, IOException
The ApplicationMaster requests a NodeManager to
stop a list of Containers allocated to it using this
interface.
The ApplicationMaster sends a StopContainersRequest
which includes the ContainerIds of the containers to be stopped.
The NodeManager sends a response via
StopContainersResponse which includes a list of ContainerId
s of successfully stopped containers, a containerId-to-exception map for
each failed request in which the exception indicates errors from per
container. Note: None-container-specific exceptions will still be thrown by
the API method itself. ApplicationMaster can use
getContainerStatuses(GetContainerStatusesRequest) to get updated
statuses of the containers.
request - request to stop a list of containersYarnExceptionIOException@InterfaceAudience.Public @InterfaceStability.Stable GetContainerStatusesResponse getContainerStatuses(GetContainerStatusesRequest request) throws YarnException, IOException
The API used by the ApplicationMaster to request for current
statuses of Containers from the NodeManager.
The ApplicationMaster sends a
GetContainerStatusesRequest which includes the ContainerIds
of all containers whose statuses are needed.
The NodeManager responds with
GetContainerStatusesResponse which includes a list of
ContainerStatus of the successfully queried containers and a
containerId-to-exception map for each failed request in which the exception
indicates errors from per container. Note: None-container-specific
exceptions will still be thrown by the API method itself.
request - request to get ContainerStatuses of containers with
the specified ContainerIdsContainerStatus of the
successfully queried containers and a containerId-to-exception map
for failed requests.YarnExceptionIOException@InterfaceAudience.Public @InterfaceStability.Unstable IncreaseContainersResourceResponse increaseContainersResource(IncreaseContainersResourceRequest request) throws YarnException, IOException
The API used by the ApplicationMaster to request for
resource increase of running containers on the NodeManager.
request - request to increase resource of a list of containersYarnExceptionIOExceptionSignalContainerResponse signalToContainer(SignalContainerRequest request) throws YarnException, IOException
YarnExceptionIOExceptionCopyright © 2017 Apache Software Foundation. All Rights Reserved.