YARN-2726. CapacityScheduler should explicitly log when an accessible label has no capacity. Contributed by Wangda Tan

This commit is contained in:
Xuan 2014-10-27 10:26:21 -07:00
parent baf794dc40
commit ce1a4419a6
2 changed files with 14 additions and 4 deletions

View File

@ -763,6 +763,9 @@ Release 2.6.0 - UNRELEASED
YARN-2734. Skipped sub-folders in the local log dir when aggregating logs.
(Xuan Gong via zjshen)
YARN-2726. CapacityScheduler should explicitly log when an accessible
label has no capacity. (Wangda Tan via xgong)
Release 2.5.1 - 2014-09-05
INCOMPATIBLE CHANGES

View File

@ -466,12 +466,19 @@ public class CapacitySchedulerConfiguration extends Configuration {
nodeLabelCapacities.put(label, 1.0f);
continue;
}
float capacity =
getFloat(getNodeLabelPrefix(queue, label) + CAPACITY, UNDEFINED);
String capacityPropertyName = getNodeLabelPrefix(queue, label) + CAPACITY;
float capacity = getFloat(capacityPropertyName, UNDEFINED);
if (capacity == UNDEFINED) {
throw new IllegalArgumentException("Configuration issue: "
+ " node-label=" + label + " is accessible from queue=" + queue
+ " but has no capacity set, you should set "
+ capacityPropertyName + " in range of [0, 100].");
}
if (capacity < MINIMUM_CAPACITY_VALUE
|| capacity > MAXIMUM_CAPACITY_VALUE) {
throw new IllegalArgumentException("Illegal " + "capacity of "
+ capacity + " for label=" + label + " in queue=" + queue);
throw new IllegalArgumentException("Illegal capacity of " + capacity
+ " for node-label=" + label + " in queue=" + queue
+ ", valid capacity should in range of [0, 100].");
}
if (LOG.isDebugEnabled()) {
LOG.debug("CSConf - getCapacityOfLabel: prefix="