MAPREDUCE-4295. RM crashes due to DNS issue (tgraves)
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1352638 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
b91910dd3e
commit
126dd6adef
@ -603,6 +603,8 @@ Release 0.23.3 - UNRELEASED
|
|||||||
|
|
||||||
MAPREDUCE-4320. gridmix mainClass wrong in pom.xml (tgraves)
|
MAPREDUCE-4320. gridmix mainClass wrong in pom.xml (tgraves)
|
||||||
|
|
||||||
|
MAPREDUCE-4295. RM crashes due to DNS issue (tgraves)
|
||||||
|
|
||||||
Release 0.23.2 - UNRELEASED
|
Release 0.23.2 - UNRELEASED
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
@ -1180,9 +1180,16 @@ public Container createContainer(SchedulerApp application, SchedulerNode node,
|
|||||||
if (UserGroupInformation.isSecurityEnabled()) {
|
if (UserGroupInformation.isSecurityEnabled()) {
|
||||||
ContainerTokenIdentifier tokenIdentifier = new ContainerTokenIdentifier(
|
ContainerTokenIdentifier tokenIdentifier = new ContainerTokenIdentifier(
|
||||||
containerId, nodeId.toString(), capability);
|
containerId, nodeId.toString(), capability);
|
||||||
|
try {
|
||||||
containerToken = BuilderUtils.newContainerToken(nodeId, ByteBuffer
|
containerToken = BuilderUtils.newContainerToken(nodeId, ByteBuffer
|
||||||
.wrap(containerTokenSecretManager
|
.wrap(containerTokenSecretManager
|
||||||
.createPassword(tokenIdentifier)), tokenIdentifier);
|
.createPassword(tokenIdentifier)), tokenIdentifier);
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
// this could be because DNS is down - in which case we just want
|
||||||
|
// to retry and not bring RM down
|
||||||
|
LOG.error("Error trying to create new container", e);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create the container
|
// Create the container
|
||||||
@ -1212,6 +1219,11 @@ private Resource assignContainer(Resource clusterResource, SchedulerNode node,
|
|||||||
Container container =
|
Container container =
|
||||||
getContainer(rmContainer, application, node, capability, priority);
|
getContainer(rmContainer, application, node, capability, priority);
|
||||||
|
|
||||||
|
// something went wrong getting/creating the container
|
||||||
|
if (container == null) {
|
||||||
|
return Resources.none();
|
||||||
|
}
|
||||||
|
|
||||||
// Can we allocate a container on this node?
|
// Can we allocate a container on this node?
|
||||||
int availableContainers =
|
int availableContainers =
|
||||||
available.getMemory() / capability.getMemory();
|
available.getMemory() / capability.getMemory();
|
||||||
|
Loading…
Reference in New Issue
Block a user