diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/AMRMClient.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/AMRMClient.java index 9923806..0f64040 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/AMRMClient.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/AMRMClient.java @@ -21,6 +21,7 @@ import java.io.IOException; import java.util.Collection; import java.util.List; +import java.util.Set; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -346,6 +347,11 @@ public abstract void updateBlacklist(List blacklistAdditions, List blacklistRemovals); /** + * Return application's blacklist of resources. + */ + public abstract Set getBlacklistedNodes(); + + /** * Set the NM token cache for the AMRMClient. This cache must * be shared with the {@link NMClient} used to manage containers for the * AMRMClient diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/impl/AMRMClientImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/impl/AMRMClientImpl.java index b1324c1..233696e 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/impl/AMRMClientImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/impl/AMRMClientImpl.java @@ -757,6 +757,11 @@ private void decResourceRequest(Priority priority, } @Override + public synchronized Set getBlacklistedNodes() { + return Collections.unmodifiableSet(this.blacklistedNodes); + } + + @Override public synchronized void updateBlacklist(List blacklistAdditions, List blacklistRemovals) { diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/api/impl/TestAMRMClient.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/api/impl/TestAMRMClient.java index 7d29d05..46aba9a 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/api/impl/TestAMRMClient.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/api/impl/TestAMRMClient.java @@ -531,6 +531,9 @@ public void testAllocationWithBlacklist() throws YarnException, IOException { // put node in black list, so no container assignment amClient.updateBlacklist(localNodeBlacklist, null); + Set blacklistedNodes = amClient.getBlacklistedNodes(); + assertEquals(1, blacklistedNodes.size()); + assertTrue(blacklistedNodes.contains(node)); int allocatedContainerCount = getAllocatedContainersNumber(amClient, DEFAULT_ITERATION);