HDFS-10803. TestBalancerWithMultipleNameNodes#testBalancing2OutOf3Blockpools fails intermittently due to no free space available. Contributed by Yiqun Lin.

This commit is contained in:
Yiqun Lin 2018-03-13 10:15:51 +08:00
parent 91c82c90f0
commit 4afd50b106

View File

@ -416,13 +416,19 @@ private void unevenDistribution(final int nNameNodes,
}
conf.set(DFSConfigKeys.DFS_NAMENODE_SAFEMODE_THRESHOLD_PCT_KEY, "0.0f");
// Adjust the capacity of each DN since it will redistribute blocks
// nNameNodes times in the following operations.
long[] newCapacities = new long[nDataNodes];
for (int i = 0; i < nDataNodes; i++) {
newCapacities[i] = capacities[i] * nNameNodes;
}
{
LOG.info("UNEVEN 10");
final MiniDFSCluster cluster = new MiniDFSCluster.Builder(conf)
.nnTopology(MiniDFSNNTopology.simpleFederatedTopology(nNameNodes))
.numDataNodes(nDataNodes)
.racks(racks)
.simulatedCapacities(capacities)
.simulatedCapacities(newCapacities)
.format(false)
.build();
LOG.info("UNEVEN 11");
@ -450,7 +456,7 @@ private void unevenDistribution(final int nNameNodes,
LOG.info("UNEVEN 13: n=" + n);
}
final long totalCapacity = TestBalancer.sum(capacities);
final long totalCapacity = TestBalancer.sum(newCapacities);
final long totalUsed = nNameNodes*usedSpacePerNN;
LOG.info("UNEVEN 14");
runBalancer(s, totalUsed, totalCapacity);