[50/50] [abbrv] hadoop git commit: YARN-4512 [YARN-1011]. Provide a knob to turn on over-allocation. (kasha)
YARN-4512 [YARN-1011]. Provide a knob to turn on over-allocation. (kasha) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/75d19c1c Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/75d19c1c Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/75d19c1c Branch: refs/heads/YARN-1011 Commit: 75d19c1c8ad9c46f3633bfc57a645ba27d7a4115 Parents: 04c604c Author: Karthik KambatlaAuthored: Fri Jan 29 14:31:45 2016 -0800 Committer: Haibo Chen Committed: Thu Nov 2 10:07:36 2017 -0700 -- .../hadoop/yarn/conf/YarnConfiguration.java | 13 ++- .../src/main/resources/yarn-default.xml | 21 .../RegisterNodeManagerRequest.java | 14 ++- .../pb/RegisterNodeManagerRequestPBImpl.java| 45 +++- .../server/api/records/OverAllocationInfo.java | 45 .../server/api/records/ResourceThresholds.java | 45 .../impl/pb/OverAllocationInfoPBImpl.java | 106 +++ .../impl/pb/ResourceThresholdsPBImpl.java | 93 .../yarn_server_common_service_protos.proto | 10 ++ .../hadoop/yarn/server/nodemanager/Context.java | 5 + .../yarn/server/nodemanager/NodeManager.java| 17 +++ .../nodemanager/NodeStatusUpdaterImpl.java | 7 +- .../monitor/ContainersMonitorImpl.java | 34 ++ .../amrmproxy/BaseAMRMProxyTest.java| 11 ++ 14 files changed, 455 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/75d19c1c/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java index 640e86e..1552f6c 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java @@ -1871,7 +1871,6 @@ public class YarnConfiguration extends Configuration { public static final boolean DEFAULT_NM_LINUX_CONTAINER_CGROUPS_STRICT_RESOURCE_USAGE = false; - // Configurations for applicaiton life time monitor feature public static final String RM_APPLICATION_MONITOR_INTERVAL_MS = RM_PREFIX + "application-timeouts.monitor.interval-ms"; @@ -1879,6 +1878,18 @@ public class YarnConfiguration extends Configuration { public static final long DEFAULT_RM_APPLICATION_MONITOR_INTERVAL_MS = 3000; + /** Overallocation (= allocation based on utilization) configs. */ + public static final String NM_OVERALLOCATION_ALLOCATION_THRESHOLD = + NM_PREFIX + "overallocation.allocation-threshold"; + public static final float DEFAULT_NM_OVERALLOCATION_ALLOCATION_THRESHOLD + = 0f; + @Private + public static final float MAX_NM_OVERALLOCATION_ALLOCATION_THRESHOLD = 0.95f; + public static final String NM_OVERALLOCATION_PREEMPTION_THRESHOLD = + NM_PREFIX + "overallocation.preemption-threshold"; + public static final float DEFAULT_NM_OVERALLOCATION_PREEMPTION_THRESHOLD + = 0f; + /** * Interval of time the linux container executor should try cleaning up * cgroups entry when cleaning up a container. This is required due to what http://git-wip-us.apache.org/repos/asf/hadoop/blob/75d19c1c/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml index f4b2e61..5f4a89c 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml @@ -1620,6 +1620,27 @@ +The extent of over-allocation (container-allocation based on + current utilization instead of prior allocation) allowed on this node, + expressed as a float between 0 and 0.95. By default, over-allocation is + turned off (value = 0). When turned on, the node allows running + OPPORTUNISTIC containers when the aggregate utilization is under the + value specified here multiplied by the node's advertised capacity. + +yarn.nodemanager.overallocation.allocation-threshold +0f + + + +When a node is over-allocated to improve utilization by +
[50/50] [abbrv] hadoop git commit: YARN-4512 [YARN-1011]. Provide a knob to turn on over-allocation. (kasha)
YARN-4512 [YARN-1011]. Provide a knob to turn on over-allocation. (kasha) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/153498bc Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/153498bc Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/153498bc Branch: refs/heads/YARN-1011 Commit: 153498bc3adb830f3ae37825fed856fae22eea16 Parents: 4369690 Author: Karthik KambatlaAuthored: Fri Jan 29 14:31:45 2016 -0800 Committer: Haibo Chen Committed: Wed May 31 14:25:41 2017 -0700 -- .../hadoop/yarn/conf/YarnConfiguration.java | 13 ++- .../src/main/resources/yarn-default.xml | 21 .../RegisterNodeManagerRequest.java | 14 ++- .../pb/RegisterNodeManagerRequestPBImpl.java| 45 +++- .../server/api/records/OverAllocationInfo.java | 45 .../server/api/records/ResourceThresholds.java | 45 .../impl/pb/OverAllocationInfoPBImpl.java | 106 +++ .../impl/pb/ResourceThresholdsPBImpl.java | 93 .../yarn_server_common_service_protos.proto | 10 ++ .../hadoop/yarn/server/nodemanager/Context.java | 5 + .../yarn/server/nodemanager/NodeManager.java| 17 +++ .../nodemanager/NodeStatusUpdaterImpl.java | 6 +- .../monitor/ContainersMonitorImpl.java | 34 ++ .../amrmproxy/BaseAMRMProxyTest.java| 11 ++ 14 files changed, 455 insertions(+), 10 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/153498bc/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java index 5e4c826..bb34626 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java @@ -1575,7 +1575,6 @@ public class YarnConfiguration extends Configuration { public static final boolean DEFAULT_NM_LINUX_CONTAINER_CGROUPS_STRICT_RESOURCE_USAGE = false; - // Configurations for applicaiton life time monitor feature public static final String RM_APPLICATION_MONITOR_INTERVAL_MS = RM_PREFIX + "application-timeouts.monitor.interval-ms"; @@ -1583,6 +1582,18 @@ public class YarnConfiguration extends Configuration { public static final long DEFAULT_RM_APPLICATION_MONITOR_INTERVAL_MS = 3000; + /** Overallocation (= allocation based on utilization) configs. */ + public static final String NM_OVERALLOCATION_ALLOCATION_THRESHOLD = + NM_PREFIX + "overallocation.allocation-threshold"; + public static final float DEFAULT_NM_OVERALLOCATION_ALLOCATION_THRESHOLD + = 0f; + @Private + public static final float MAX_NM_OVERALLOCATION_ALLOCATION_THRESHOLD = 0.95f; + public static final String NM_OVERALLOCATION_PREEMPTION_THRESHOLD = + NM_PREFIX + "overallocation.preemption-threshold"; + public static final float DEFAULT_NM_OVERALLOCATION_PREEMPTION_THRESHOLD + = 0f; + /** * Interval of time the linux container executor should try cleaning up * cgroups entry when cleaning up a container. This is required due to what http://git-wip-us.apache.org/repos/asf/hadoop/blob/153498bc/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml index e687eef..c131eec 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml @@ -1563,6 +1563,27 @@ +The extent of over-allocation (container-allocation based on + current utilization instead of prior allocation) allowed on this node, + expressed as a float between 0 and 0.95. By default, over-allocation is + turned off (value = 0). When turned on, the node allows running + OPPORTUNISTIC containers when the aggregate utilization is under the + value specified here multiplied by the node's advertised capacity. + +yarn.nodemanager.overallocation.allocation-threshold +0f + + + +When a node is over-allocated to improve utilization by +