|
47 | 47 | import org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyWithNodeGroup;
|
48 | 48 | import org.apache.hadoop.net.NetworkTopology;
|
49 | 49 | import org.apache.hadoop.net.NetworkTopologyWithNodeGroup;
|
| 50 | +import org.apache.hadoop.test.LambdaTestUtils; |
50 | 51 | import org.junit.Assert;
|
51 | 52 | import org.junit.Test;
|
52 | 53 |
|
@@ -361,4 +362,30 @@ public void testBalancerEndInNoMoveProgress() throws Exception {
|
361 | 362 | cluster.shutdown();
|
362 | 363 | }
|
363 | 364 | }
|
| 365 | + |
| 366 | + /** |
| 367 | + * verify BlockPlacementPolicyNodeGroup uses NetworkTopologyWithNodeGroup. |
| 368 | + */ |
| 369 | + |
| 370 | + @Test |
| 371 | + public void testBPPNodeGroup() throws Exception { |
| 372 | + Configuration conf = createConf(); |
| 373 | + conf.setBoolean(DFSConfigKeys.DFS_USE_DFS_NETWORK_TOPOLOGY_KEY, true); |
| 374 | + long[] capacities = new long[] {CAPACITY, CAPACITY, CAPACITY, CAPACITY}; |
| 375 | + String[] racks = new String[] {RACK0, RACK0, RACK1, RACK1}; |
| 376 | + String[] nodeGroups = |
| 377 | + new String[] {NODEGROUP0, NODEGROUP0, NODEGROUP1, NODEGROUP2}; |
| 378 | + |
| 379 | + int numOfDatanodes = capacities.length; |
| 380 | + assertEquals(numOfDatanodes, racks.length); |
| 381 | + assertEquals(numOfDatanodes, nodeGroups.length); |
| 382 | + MiniDFSCluster.Builder builder = |
| 383 | + new MiniDFSCluster.Builder(conf).numDataNodes(capacities.length) |
| 384 | + .racks(racks).simulatedCapacities(capacities); |
| 385 | + MiniDFSClusterWithNodeGroup.setNodeGroups(nodeGroups); |
| 386 | + LambdaTestUtils.intercept(IllegalArgumentException.class, |
| 387 | + "Configured cluster topology should be " |
| 388 | + + "org.apache.hadoop.net.NetworkTopologyWithNodeGroup", |
| 389 | + () -> new MiniDFSClusterWithNodeGroup(builder)); |
| 390 | + } |
364 | 391 | }
|
0 commit comments