You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ay...@apache.org on 2020/02/17 19:14:20 UTC

[hadoop] branch trunk updated: HADOOP-13666. Supporting rack exclusion in countNumOfAvailableNodes in NetworkTopology. Contributed by Inigo Goiri.

This is an automated email from the ASF dual-hosted git repository.

ayushsaxena pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 84f7638  HADOOP-13666. Supporting rack exclusion in countNumOfAvailableNodes in NetworkTopology. Contributed by Inigo Goiri.
84f7638 is described below

commit 84f763884021980c456e2ebc21c1a1c1b18fec6c
Author: Ayush Saxena <ay...@apache.org>
AuthorDate: Tue Feb 18 00:29:21 2020 +0530

    HADOOP-13666. Supporting rack exclusion in countNumOfAvailableNodes in NetworkTopology. Contributed by Inigo Goiri.
---
 .../java/org/apache/hadoop/net/NetworkTopology.java    |  6 +++++-
 .../org/apache/hadoop/net/TestNetworkTopology.java     | 18 ++++++++++++++++++
 2 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java
index 66799f5..aae56dd 100644
--- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java
+++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java
@@ -670,7 +670,11 @@ public class NetworkTopology {
           }
           if ((NodeBase.getPath(node) + NodeBase.PATH_SEPARATOR_STR)
               .startsWith(scope + NodeBase.PATH_SEPARATOR_STR)) {
-            excludedCountInScope++;
+            if (node instanceof InnerNode) {
+              excludedCountInScope += ((InnerNode) node).getNumOfLeaves();
+            } else {
+              excludedCountInScope++;
+            }
           } else {
             excludedCountOffScope++;
           }
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/net/TestNetworkTopology.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/net/TestNetworkTopology.java
index f16bfb7..74c3f04 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/net/TestNetworkTopology.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/net/TestNetworkTopology.java
@@ -614,4 +614,22 @@ public class TestNetworkTopology {
           frequency.get(dataNodes[i]) > 0);
     }
   }
+
+  @Test
+  public void testCountNumOfAvailableNodes() {
+    int numNodes = cluster.countNumOfAvailableNodes(NodeBase.ROOT, null);
+    assertEquals(20, numNodes);
+
+    // Excluding a single node
+    Collection<Node> excludedNodes = new HashSet<Node>();
+    excludedNodes.add(dataNodes[0]);
+    numNodes = cluster.countNumOfAvailableNodes(NodeBase.ROOT, excludedNodes);
+    assertEquals(19, numNodes);
+
+    // Excluding a full rack
+    Node d4r1 = cluster.getNode("/d4/r1");
+    excludedNodes.add(d4r1);
+    numNodes = cluster.countNumOfAvailableNodes(NodeBase.ROOT, excludedNodes);
+    assertEquals(12, numNodes);
+  }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org