Index: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/security/AMRMTokenSelector.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/security/AMRMTokenSelector.java (revision 73b8fbc98ce3f84353165be7a95a4fb3f0e6113f) +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/security/AMRMTokenSelector.java (revision d8b4fee8f844d1adef6b067163596326f2c97d54) @@ -18,7 +18,9 @@ package org.apache.hadoop.yarn.security; +import java.util.ArrayList; import java.util.Collection; +import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -44,12 +46,20 @@ return null; } LOG.debug("Looking for a token with service " + service.toString()); + List> amrmTokens = new ArrayList<>(); for (Token token : tokens) { LOG.debug("Token kind is " + token.getKind().toString() + " and the token's service name is " + token.getService()); if (AMRMTokenIdentifier.KIND_NAME.equals(token.getKind()) && checkService(service, token)) { - return (Token) token; + amrmTokens.add((Token)token); + } + } + if(amrmTokens.size() > 0){ + if(service.toString().contains("127.0.0.1")){ + return amrmTokens.get(amrmTokens.size() - 1); + } else { + return amrmTokens.get(0); } } return null; Index: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AMRMProxyTokenSecretManager.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AMRMProxyTokenSecretManager.java (revision 73b8fbc98ce3f84353165be7a95a4fb3f0e6113f) +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AMRMProxyTokenSecretManager.java (revision d8b4fee8f844d1adef6b067163596326f2c97d54) @@ -219,7 +219,7 @@ byte[] password = this.createPassword(identifier); appAttemptSet.add(appAttemptId); return new Token(identifier.getBytes(), - password, identifier.getKind(), new Text()); + password, identifier.getKind(), new Text("AMRMProxy")); } finally { this.writeLock.unlock(); }