[23/35] hadoop git commit: HDFS-13188. Disk Balancer: Support multiple block pools during block move. Contributed by Bharat Viswanadham.
HDFS-13188. Disk Balancer: Support multiple block pools during block move. Contributed by Bharat Viswanadham. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/70607256 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/70607256 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/70607256 Branch: refs/heads/HDFS-7240 Commit: 7060725662cb3317ff2f0fcc38f965fd23e8e6aa Parents: e6f99e2 Author: Inigo Goiri Authored: Tue Mar 6 09:09:32 2018 -0800 Committer: Inigo Goiri Committed: Tue Mar 6 09:09:32 2018 -0800 -- .../hdfs/server/datanode/DiskBalancer.java | 4 +- .../diskbalancer/DiskBalancerTestUtil.java | 21 -- .../server/diskbalancer/TestDiskBalancer.java | 72 +--- .../diskbalancer/TestDiskBalancerRPC.java | 4 +- 4 files changed, 85 insertions(+), 16 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/70607256/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DiskBalancer.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DiskBalancer.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DiskBalancer.java index e90a47e..91c3624 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DiskBalancer.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DiskBalancer.java @@ -958,8 +958,8 @@ public class DiskBalancer { ExtendedBlock block = null; while (block == null && currentCount < poolIters.size()) { currentCount++; -poolIndex = poolIndex++ % poolIters.size(); -FsVolumeSpi.BlockIterator currentPoolIter = poolIters.get(poolIndex); +int index = poolIndex++ % poolIters.size(); +FsVolumeSpi.BlockIterator currentPoolIter = poolIters.get(index); block = getBlockToCopy(currentPoolIter, item); } http://git-wip-us.apache.org/repos/asf/hadoop/blob/70607256/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/diskbalancer/DiskBalancerTestUtil.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/diskbalancer/DiskBalancerTestUtil.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/diskbalancer/DiskBalancerTestUtil.java index bc4181b..bd8dbce 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/diskbalancer/DiskBalancerTestUtil.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/diskbalancer/DiskBalancerTestUtil.java @@ -40,6 +40,10 @@ import org.apache.hadoop.hdfs.server.diskbalancer.datamodel.DiskBalancerVolume; import org.apache.hadoop.hdfs.server.diskbalancer.datamodel.DiskBalancerVolumeSet; import org.apache.hadoop.util.Time; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.io.IOException; @@ -51,6 +55,7 @@ import java.util.concurrent.TimeoutException; * Helper class to create various cluster configurations at run time. */ public class DiskBalancerTestUtil { + static final Logger LOG = LoggerFactory.getLogger(TestDiskBalancer.class); public static final long MB = 1024 * 1024L; public static final long GB = MB * 1024L; public static final long TB = GB * 1024L; @@ -241,17 +246,25 @@ public class DiskBalancerTestUtil { * @return Number of Blocks. * @throws IOException */ - public static int getBlockCount(FsVolumeSpi source) throws IOException { + public static int getBlockCount(FsVolumeSpi source, + boolean checkblockPoolCount) + throws IOException { int count = 0; for (String blockPoolID : source.getBlockPoolList()) { FsVolumeSpi.BlockIterator sourceIter = source.newBlockIterator(blockPoolID, "TestDiskBalancerSource"); + int blockCount = 0; while (!sourceIter.atEnd()) { ExtendedBlock block = sourceIter.nextBlock(); if (block != null) { - count++; + blockCount++; } } + if (checkblockPoolCount) { +LOG.info("Block Pool Id: {}, blockCount: {}", blockPoolID, blockCount); +assertTrue(blockCount > 0); + } + count += blockCount; } return count; } @@ -320,10 +333,10 @@ public class DiskBalancerTestUtil { dnNode.getFSDataset().getFsVolumeReferences()) { source = (FsVolumeImpl) refs.get(0); dest = (FsVolumeIm
hadoop git commit: HDFS-13188. Disk Balancer: Support multiple block pools during block move. Contributed by Bharat Viswanadham.
Repository: hadoop Updated Branches: refs/heads/trunk e6f99e205 -> 706072566 HDFS-13188. Disk Balancer: Support multiple block pools during block move. Contributed by Bharat Viswanadham. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/70607256 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/70607256 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/70607256 Branch: refs/heads/trunk Commit: 7060725662cb3317ff2f0fcc38f965fd23e8e6aa Parents: e6f99e2 Author: Inigo Goiri Authored: Tue Mar 6 09:09:32 2018 -0800 Committer: Inigo Goiri Committed: Tue Mar 6 09:09:32 2018 -0800 -- .../hdfs/server/datanode/DiskBalancer.java | 4 +- .../diskbalancer/DiskBalancerTestUtil.java | 21 -- .../server/diskbalancer/TestDiskBalancer.java | 72 +--- .../diskbalancer/TestDiskBalancerRPC.java | 4 +- 4 files changed, 85 insertions(+), 16 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/70607256/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DiskBalancer.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DiskBalancer.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DiskBalancer.java index e90a47e..91c3624 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DiskBalancer.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DiskBalancer.java @@ -958,8 +958,8 @@ public class DiskBalancer { ExtendedBlock block = null; while (block == null && currentCount < poolIters.size()) { currentCount++; -poolIndex = poolIndex++ % poolIters.size(); -FsVolumeSpi.BlockIterator currentPoolIter = poolIters.get(poolIndex); +int index = poolIndex++ % poolIters.size(); +FsVolumeSpi.BlockIterator currentPoolIter = poolIters.get(index); block = getBlockToCopy(currentPoolIter, item); } http://git-wip-us.apache.org/repos/asf/hadoop/blob/70607256/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/diskbalancer/DiskBalancerTestUtil.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/diskbalancer/DiskBalancerTestUtil.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/diskbalancer/DiskBalancerTestUtil.java index bc4181b..bd8dbce 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/diskbalancer/DiskBalancerTestUtil.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/diskbalancer/DiskBalancerTestUtil.java @@ -40,6 +40,10 @@ import org.apache.hadoop.hdfs.server.diskbalancer.datamodel.DiskBalancerVolume; import org.apache.hadoop.hdfs.server.diskbalancer.datamodel.DiskBalancerVolumeSet; import org.apache.hadoop.util.Time; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.io.IOException; @@ -51,6 +55,7 @@ import java.util.concurrent.TimeoutException; * Helper class to create various cluster configurations at run time. */ public class DiskBalancerTestUtil { + static final Logger LOG = LoggerFactory.getLogger(TestDiskBalancer.class); public static final long MB = 1024 * 1024L; public static final long GB = MB * 1024L; public static final long TB = GB * 1024L; @@ -241,17 +246,25 @@ public class DiskBalancerTestUtil { * @return Number of Blocks. * @throws IOException */ - public static int getBlockCount(FsVolumeSpi source) throws IOException { + public static int getBlockCount(FsVolumeSpi source, + boolean checkblockPoolCount) + throws IOException { int count = 0; for (String blockPoolID : source.getBlockPoolList()) { FsVolumeSpi.BlockIterator sourceIter = source.newBlockIterator(blockPoolID, "TestDiskBalancerSource"); + int blockCount = 0; while (!sourceIter.atEnd()) { ExtendedBlock block = sourceIter.nextBlock(); if (block != null) { - count++; + blockCount++; } } + if (checkblockPoolCount) { +LOG.info("Block Pool Id: {}, blockCount: {}", blockPoolID, blockCount); +assertTrue(blockCount > 0); + } + count += blockCount; } return count; } @@ -320,10 +333,10 @@ public class DiskBalancerTestUtil { dnNode.getFSDataset().getFsVolumeReferences()