HDFS-9703. DiskBalancer: getBandwidth implementation. (Contributed by Anu Engineer)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/75a711a2 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/75a711a2 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/75a711a2 Branch: refs/heads/HDFS-1312 Commit: 75a711a2d53966361f5d5fa727b43c9fddb01504 Parents: 918722b Author: Arpit Agarwal <a...@apache.org> Authored: Mon Mar 14 12:57:29 2016 -0700 Committer: Arpit Agarwal <a...@apache.org> Committed: Thu Jun 23 18:18:48 2016 -0700 ---------------------------------------------------------------------- .../hadoop/hdfs/server/datanode/DataNode.java | 6 +++-- .../hdfs/server/datanode/DiskBalancer.java | 17 +++++++++++++ .../diskbalancer/TestDiskBalancerRPC.java | 26 ++++++++++++-------- 3 files changed, 37 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/75a711a2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java index 00e124d..8a61291 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java @@ -1031,7 +1031,7 @@ public class DataNode extends ReconfigurableBase * @param data - FSDataSet * @param conf - Config */ - private synchronized void initDiskBalancer(FsDatasetSpi data, + private void initDiskBalancer(FsDatasetSpi data, Configuration conf) { if (this.diskBalancer != null) { return; @@ -1045,7 +1045,7 @@ public class DataNode extends ReconfigurableBase /** * Shutdown disk balancer. */ - private synchronized void shutdownDiskBalancer() { + private void shutdownDiskBalancer() { if (this.diskBalancer != null) { this.diskBalancer.shutdown(); this.diskBalancer = null; @@ -3375,6 +3375,8 @@ public class DataNode extends ReconfigurableBase switch (key) { case DiskBalancerConstants.DISKBALANCER_VOLUME_NAME: return this.diskBalancer.getVolumeNames(); + case DiskBalancerConstants.DISKBALANCER_BANDWIDTH : + return Long.toString(this.diskBalancer.getBandwidth()); default: LOG.error("Disk Balancer - Unknown key in get balancer setting. Key: " + key); http://git-wip-us.apache.org/repos/asf/hadoop/blob/75a711a2/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 9e41d2e..d1bc1f1 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 @@ -73,6 +73,7 @@ public class DiskBalancer { private Future future; private String planID; private DiskBalancerWorkStatus.Result currentResult; + private long bandwidth; /** * Constructs a Disk Balancer object. This object takes care of reading a @@ -159,6 +160,7 @@ public class DiskBalancer { createWorkPlan(nodePlan); this.planID = planID; this.currentResult = Result.PLAN_UNDER_PROGRESS; + this.bandwidth = bandwidth; executePlan(); } finally { lock.unlock(); @@ -248,6 +250,21 @@ public class DiskBalancer { } } + /** + * Returns the current bandwidth. + * + * @return string representation of bandwidth. + * @throws DiskBalancerException + */ + public long getBandwidth() throws DiskBalancerException { + lock.lock(); + try { + checkDiskBalancerEnabled(); + return this.bandwidth; + } finally { + lock.unlock(); + } + } /** * Throws if Disk balancer is disabled. http://git-wip-us.apache.org/repos/asf/hadoop/blob/75a711a2/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/diskbalancer/TestDiskBalancerRPC.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/diskbalancer/TestDiskBalancerRPC.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/diskbalancer/TestDiskBalancerRPC.java index 37a6216..9cd41c2 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/diskbalancer/TestDiskBalancerRPC.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/diskbalancer/TestDiskBalancerRPC.java @@ -187,6 +187,22 @@ public class TestDiskBalancerRPC { dataNode.getDiskBalancerSetting(invalidSetting); } + @Test + public void testgetDiskBalancerBandwidth() throws Exception { + RpcTestHelper rpcTestHelper = new RpcTestHelper().invoke(); + DataNode dataNode = rpcTestHelper.getDataNode(); + String planHash = rpcTestHelper.getPlanHash(); + int planVersion = rpcTestHelper.getPlanVersion(); + NodePlan plan = rpcTestHelper.getPlan(); + + dataNode.submitDiskBalancerPlan(planHash, planVersion, 10, plan.toJson()); + String bandwidthString = dataNode.getDiskBalancerSetting( + DiskBalancerConstants.DISKBALANCER_BANDWIDTH); + long value = Long.decode(bandwidthString); + Assert.assertEquals(10L, value); + } + + @Test public void testQueryPlan() throws Exception { @@ -211,16 +227,6 @@ public class TestDiskBalancerRPC { Assert.assertTrue(status.getResult() == NO_PLAN); } - @Test - public void testGetDiskBalancerSetting() throws Exception { - final int dnIndex = 0; - DataNode dataNode = cluster.getDataNodes().get(dnIndex); - thrown.expect(DiskBalancerException.class); - thrown.expect(new - ResultVerifier(Result.UNKNOWN_KEY)); - dataNode.getDiskBalancerSetting( - DiskBalancerConstants.DISKBALANCER_BANDWIDTH); - } private class RpcTestHelper { private NodePlan plan; --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org