This is an automated email from the ASF dual-hosted git repository.
omalley pushed a commit to branch branch-3.3
in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/branch-3.3 by this push:
new e24bd1c HDFS-16517 Distance metric is wrong for non-DN machines in
2.10. Fixed in HADOOP-16161, but this test case adds value to ensure the two
getWeight methods stay in sync.
e24bd1c is described below
commit e24bd1c15b844166a71415050b798571fd315e6f
Author: Owen O'Malley <[email protected]>
AuthorDate: Tue Mar 22 09:51:51 2022 -0700
HDFS-16517 Distance metric is wrong for non-DN machines in 2.10. Fixed in
HADOOP-16161, but
this test case adds value to ensure the two getWeight methods stay in sync.
Fixes #4091
Signed-off-by: Owen O'Malley <[email protected]>
---
.../org/apache/hadoop/net/TestClusterTopology.java | 38 ++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git
a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestClusterTopology.java
b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestClusterTopology.java
index fbed605..6b07d4a 100644
---
a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestClusterTopology.java
+++
b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestClusterTopology.java
@@ -22,6 +22,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Arrays;
+import org.apache.commons.lang3.tuple.Pair;
import org.apache.commons.math3.stat.inference.ChiSquareTest;
import org.apache.hadoop.conf.Configuration;
import org.junit.Assert;
@@ -234,4 +235,41 @@ public class TestClusterTopology extends Assert {
node.setNetworkLocation(rackLocation);
return node;
}
+
+ private NodeElement getNewNode(NetworkTopology cluster,
+ String name, String rackLocation) {
+ NodeElement node = getNewNode(name, rackLocation);
+ cluster.add(node);
+ return node;
+ }
+
+ @Test
+ @SuppressWarnings("unchecked")
+ public void testWeights() {
+ // create the topology
+ NetworkTopology cluster = NetworkTopology.getInstance(new Configuration());
+ NodeElement node1 = getNewNode(cluster, "node1", "/r1");
+ NodeElement node2 = getNewNode(cluster, "node2", "/r1");
+ NodeElement node3 = getNewNode(cluster, "node3", "/r2");
+ for (Pair<Integer, NodeElement> test: new Pair[]{Pair.of(0, node1),
+ Pair.of(2, node2), Pair.of(4, node3)}) {
+ int expect = test.getLeft();
+ assertEquals(test.toString(), expect, cluster.getWeight(node1,
test.getRight()));
+ assertEquals(test.toString(), expect,
+ cluster.getWeightUsingNetworkLocation(node1, test.getRight()));
+ }
+ // Reset so that we can have 2 levels
+ cluster = NetworkTopology.getInstance(new Configuration());
+ NodeElement node5 = getNewNode(cluster, "node5", "/pod1/r1");
+ NodeElement node6 = getNewNode(cluster, "node6", "/pod1/r1");
+ NodeElement node7 = getNewNode(cluster, "node7", "/pod1/r2");
+ NodeElement node8 = getNewNode(cluster, "node8", "/pod2/r3");
+ for (Pair<Integer, NodeElement> test: new Pair[]{Pair.of(0, node5),
+ Pair.of(2, node6), Pair.of(4, node7), Pair.of(6, node8)}) {
+ int expect = test.getLeft();
+ assertEquals(test.toString(), expect, cluster.getWeight(node5,
test.getRight()));
+ assertEquals(test.toString(), expect,
+ cluster.getWeightUsingNetworkLocation(node5, test.getRight()));
+ }
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]