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