YARN-4396. Log the trace information on FSAppAttempt#assignContainer (Contributed by Yiqun Li via Daniel Templeton)
(cherry picked from commit 2528bea67f
)
This commit is contained in:
parent
adceebc400
commit
ce13463e7a
|
@ -294,11 +294,27 @@ public class FSAppAttempt extends SchedulerApplicationAttempt
|
||||||
rackLocalityThreshold;
|
rackLocalityThreshold;
|
||||||
|
|
||||||
// Relax locality constraints once we've surpassed threshold.
|
// Relax locality constraints once we've surpassed threshold.
|
||||||
if (getSchedulingOpportunities(schedulerKey) > (numNodes * threshold)) {
|
int schedulingOpportunities = getSchedulingOpportunities(schedulerKey);
|
||||||
|
double thresholdNum = numNodes * threshold;
|
||||||
|
if (schedulingOpportunities > thresholdNum) {
|
||||||
if (allowed.equals(NodeType.NODE_LOCAL)) {
|
if (allowed.equals(NodeType.NODE_LOCAL)) {
|
||||||
|
if (LOG.isTraceEnabled()) {
|
||||||
|
LOG.trace("SchedulingOpportunities: " + schedulingOpportunities
|
||||||
|
+ ", nodeLocalityThreshold: " + thresholdNum
|
||||||
|
+ ", change allowedLocality from NODE_LOCAL to RACK_LOCAL"
|
||||||
|
+ ", priority: " + schedulerKey.getPriority()
|
||||||
|
+ ", app attempt id: " + this.attemptId);
|
||||||
|
}
|
||||||
allowedLocalityLevel.put(schedulerKey, NodeType.RACK_LOCAL);
|
allowedLocalityLevel.put(schedulerKey, NodeType.RACK_LOCAL);
|
||||||
resetSchedulingOpportunities(schedulerKey);
|
resetSchedulingOpportunities(schedulerKey);
|
||||||
} else if (allowed.equals(NodeType.RACK_LOCAL)) {
|
} else if (allowed.equals(NodeType.RACK_LOCAL)) {
|
||||||
|
if (LOG.isTraceEnabled()) {
|
||||||
|
LOG.trace("SchedulingOpportunities: " + schedulingOpportunities
|
||||||
|
+ ", rackLocalityThreshold: " + thresholdNum
|
||||||
|
+ ", change allowedLocality from RACK_LOCAL to OFF_SWITCH"
|
||||||
|
+ ", priority: " + schedulerKey.getPriority()
|
||||||
|
+ ", app attempt id: " + this.attemptId);
|
||||||
|
}
|
||||||
allowedLocalityLevel.put(schedulerKey, NodeType.OFF_SWITCH);
|
allowedLocalityLevel.put(schedulerKey, NodeType.OFF_SWITCH);
|
||||||
resetSchedulingOpportunities(schedulerKey);
|
resetSchedulingOpportunities(schedulerKey);
|
||||||
}
|
}
|
||||||
|
@ -365,9 +381,23 @@ public class FSAppAttempt extends SchedulerApplicationAttempt
|
||||||
|
|
||||||
if (waitTime > thresholdTime) {
|
if (waitTime > thresholdTime) {
|
||||||
if (allowed.equals(NodeType.NODE_LOCAL)) {
|
if (allowed.equals(NodeType.NODE_LOCAL)) {
|
||||||
|
if (LOG.isTraceEnabled()) {
|
||||||
|
LOG.trace("Waiting time: " + waitTime
|
||||||
|
+ " ms, nodeLocalityDelay time: " + nodeLocalityDelayMs + " ms"
|
||||||
|
+ ", change allowedLocality from NODE_LOCAL to RACK_LOCAL"
|
||||||
|
+ ", priority: " + schedulerKey.getPriority()
|
||||||
|
+ ", app attempt id: " + this.attemptId);
|
||||||
|
}
|
||||||
allowedLocalityLevel.put(schedulerKey, NodeType.RACK_LOCAL);
|
allowedLocalityLevel.put(schedulerKey, NodeType.RACK_LOCAL);
|
||||||
resetSchedulingOpportunities(schedulerKey, currentTimeMs);
|
resetSchedulingOpportunities(schedulerKey, currentTimeMs);
|
||||||
} else if (allowed.equals(NodeType.RACK_LOCAL)) {
|
} else if (allowed.equals(NodeType.RACK_LOCAL)) {
|
||||||
|
if (LOG.isTraceEnabled()) {
|
||||||
|
LOG.trace("Waiting time: " + waitTime
|
||||||
|
+ " ms, nodeLocalityDelay time: " + nodeLocalityDelayMs + " ms"
|
||||||
|
+ ", change allowedLocality from RACK_LOCAL to OFF_SWITCH"
|
||||||
|
+ ", priority: " + schedulerKey.getPriority()
|
||||||
|
+ ", app attempt id: " + this.attemptId);
|
||||||
|
}
|
||||||
allowedLocalityLevel.put(schedulerKey, NodeType.OFF_SWITCH);
|
allowedLocalityLevel.put(schedulerKey, NodeType.OFF_SWITCH);
|
||||||
resetSchedulingOpportunities(schedulerKey, currentTimeMs);
|
resetSchedulingOpportunities(schedulerKey, currentTimeMs);
|
||||||
}
|
}
|
||||||
|
@ -818,6 +848,12 @@ public class FSAppAttempt extends SchedulerApplicationAttempt
|
||||||
|
|
||||||
if (rackLocalRequest != null && rackLocalRequest.getNumContainers() != 0
|
if (rackLocalRequest != null && rackLocalRequest.getNumContainers() != 0
|
||||||
&& localRequest != null && localRequest.getNumContainers() != 0) {
|
&& localRequest != null && localRequest.getNumContainers() != 0) {
|
||||||
|
if (LOG.isTraceEnabled()) {
|
||||||
|
LOG.trace("Assign container on " + node.getNodeName()
|
||||||
|
+ " node, assignType: NODE_LOCAL" + ", allowedLocality: "
|
||||||
|
+ allowedLocality + ", priority: " + schedulerKey.getPriority()
|
||||||
|
+ ", app attempt id: " + this.attemptId);
|
||||||
|
}
|
||||||
return assignContainer(node, localRequest, NodeType.NODE_LOCAL,
|
return assignContainer(node, localRequest, NodeType.NODE_LOCAL,
|
||||||
reserved, schedulerKey);
|
reserved, schedulerKey);
|
||||||
}
|
}
|
||||||
|
@ -829,6 +865,12 @@ public class FSAppAttempt extends SchedulerApplicationAttempt
|
||||||
if (rackLocalRequest != null && rackLocalRequest.getNumContainers() != 0
|
if (rackLocalRequest != null && rackLocalRequest.getNumContainers() != 0
|
||||||
&& (allowedLocality.equals(NodeType.RACK_LOCAL) || allowedLocality
|
&& (allowedLocality.equals(NodeType.RACK_LOCAL) || allowedLocality
|
||||||
.equals(NodeType.OFF_SWITCH))) {
|
.equals(NodeType.OFF_SWITCH))) {
|
||||||
|
if (LOG.isTraceEnabled()) {
|
||||||
|
LOG.trace("Assign container on " + node.getNodeName()
|
||||||
|
+ " node, assignType: RACK_LOCAL" + ", allowedLocality: "
|
||||||
|
+ allowedLocality + ", priority: " + schedulerKey.getPriority()
|
||||||
|
+ ", app attempt id: " + this.attemptId);
|
||||||
|
}
|
||||||
return assignContainer(node, rackLocalRequest, NodeType.RACK_LOCAL,
|
return assignContainer(node, rackLocalRequest, NodeType.RACK_LOCAL,
|
||||||
reserved, schedulerKey);
|
reserved, schedulerKey);
|
||||||
}
|
}
|
||||||
|
@ -843,10 +885,23 @@ public class FSAppAttempt extends SchedulerApplicationAttempt
|
||||||
&& offSwitchRequest.getNumContainers() != 0) {
|
&& offSwitchRequest.getNumContainers() != 0) {
|
||||||
if (!hasNodeOrRackLocalRequests(schedulerKey) || allowedLocality
|
if (!hasNodeOrRackLocalRequests(schedulerKey) || allowedLocality
|
||||||
.equals(NodeType.OFF_SWITCH)) {
|
.equals(NodeType.OFF_SWITCH)) {
|
||||||
|
if (LOG.isTraceEnabled()) {
|
||||||
|
LOG.trace("Assign container on " + node.getNodeName()
|
||||||
|
+ " node, assignType: OFF_SWITCH" + ", allowedLocality: "
|
||||||
|
+ allowedLocality + ", priority: " + schedulerKey.getPriority()
|
||||||
|
+ ", app attempt id: " + this.attemptId);
|
||||||
|
}
|
||||||
return assignContainer(node, offSwitchRequest, NodeType.OFF_SWITCH,
|
return assignContainer(node, offSwitchRequest, NodeType.OFF_SWITCH,
|
||||||
reserved, schedulerKey);
|
reserved, schedulerKey);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (LOG.isTraceEnabled()) {
|
||||||
|
LOG.trace("Can't assign container on " + node.getNodeName()
|
||||||
|
+ " node, allowedLocality: " + allowedLocality + ", priority: "
|
||||||
|
+ schedulerKey.getPriority() + ", app attempt id: "
|
||||||
|
+ this.attemptId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
writeLock.unlock();
|
writeLock.unlock();
|
||||||
|
|
Loading…
Reference in New Issue