Class AbstractCGroupsCpuResourceHandler
java.lang.Object
org.apache.hadoop.yarn.server.nodemanager.containermanager.linux.resources.AbstractCGroupsCpuResourceHandler
- All Implemented Interfaces:
CpuResourceHandler,ResourceHandler
- Direct Known Subclasses:
CGroupsCpuResourceHandlerImpl,CGroupsV2CpuResourceHandlerImpl
@Unstable
@Private
public abstract class AbstractCGroupsCpuResourceHandler
extends Object
implements CpuResourceHandler
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionbootstrap(org.apache.hadoop.conf.Configuration conf) Bootstrap resource susbsystem.protected abstract booleancpuLimitExists(String path) protected abstract intgetCpuWeightByContainerVcores(int containerVcores) protected abstract intstatic int[]getOverallLimits(float yarnProcessors) postComplete(org.apache.hadoop.yarn.api.records.ContainerId containerId) Perform any tasks necessary after container completion.Prepare a resource environment for container launchreacquireContainer(org.apache.hadoop.yarn.api.records.ContainerId containerId) Require state for container that was already launchedteardown()Teardown environment for resource subsystem if requested.toString()protected abstract voidupdateCgroupCpuWeight(String cgroupId, int weight) protected abstract voidupdateCgroupMaxCpuLimit(String cgroupId, String quota, String period) updateContainer(Container container) Update state for container that was already launched
-
Field Details
-
cGroupsHandler
-
-
Method Details
-
bootstrap
public List<PrivilegedOperation> bootstrap(org.apache.hadoop.conf.Configuration conf) throws ResourceHandlerException Description copied from interface:ResourceHandlerBootstrap resource susbsystem.- Specified by:
bootstrapin interfaceResourceHandler- Returns:
- (possibly empty) list of operations that require elevated privileges
- Throws:
ResourceHandlerException
-
updateCgroupMaxCpuLimit
protected abstract void updateCgroupMaxCpuLimit(String cgroupId, String quota, String period) throws ResourceHandlerException - Throws:
ResourceHandlerException
-
cpuLimitExists
- Throws:
ResourceHandlerException
-
getOverallLimits
@VisibleForTesting @Private public static int[] getOverallLimits(float yarnProcessors) -
preStart
Description copied from interface:ResourceHandlerPrepare a resource environment for container launch- Specified by:
preStartin interfaceResourceHandler- Parameters:
container- Container being launched- Returns:
- (possibly empty) list of operations that require elevated privileges e.g a) create a custom cgroup b) add pid for container to tasks file for a cgroup.
- Throws:
ResourceHandlerException
-
reacquireContainer
public List<PrivilegedOperation> reacquireContainer(org.apache.hadoop.yarn.api.records.ContainerId containerId) throws ResourceHandlerException Description copied from interface:ResourceHandlerRequire state for container that was already launched- Specified by:
reacquireContainerin interfaceResourceHandler- Parameters:
containerId- id of the container being reacquired.- Returns:
- (possibly empty) list of operations that require elevated privileges
- Throws:
ResourceHandlerException
-
updateContainer
public List<PrivilegedOperation> updateContainer(Container container) throws ResourceHandlerException Description copied from interface:ResourceHandlerUpdate state for container that was already launched- Specified by:
updateContainerin interfaceResourceHandler- Parameters:
container- the container being updated.- Returns:
- (possibly empty) list of operations that require elevated privileges
- Throws:
ResourceHandlerException
-
getOpportunisticCpuWeight
protected abstract int getOpportunisticCpuWeight() -
getCpuWeightByContainerVcores
protected abstract int getCpuWeightByContainerVcores(int containerVcores) -
updateCgroupCpuWeight
protected abstract void updateCgroupCpuWeight(String cgroupId, int weight) throws ResourceHandlerException - Throws:
ResourceHandlerException
-
postComplete
public List<PrivilegedOperation> postComplete(org.apache.hadoop.yarn.api.records.ContainerId containerId) throws ResourceHandlerException Description copied from interface:ResourceHandlerPerform any tasks necessary after container completion.- Specified by:
postCompletein interfaceResourceHandler- Parameters:
containerId- of the container that was completed.- Returns:
- (possibly empty) list of operations that require elevated privileges
- Throws:
ResourceHandlerException
-
teardown
Description copied from interface:ResourceHandlerTeardown environment for resource subsystem if requested. This method needs to be used with care since it could impact running containers.- Specified by:
teardownin interfaceResourceHandler- Returns:
- (possibly empty) list of operations that require elevated privileges
- Throws:
ResourceHandlerException
-
toString
-