This is an automated email from the ASF dual-hosted git repository. surendralilhore pushed a commit to branch branch-3.1 in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/branch-3.1 by this push: new 8551c04 HDFS-14940. HDFS Balancer : Do not allow to set balancer maximum network bandwidth more than 1TB. Contributed by hemanthboyina. 8551c04 is described below commit 8551c04726cae82de78e559590becd3746aac1d4 Author: Surendra Singh Lilhore <surendralilh...@apache.org> AuthorDate: Fri Nov 22 00:31:25 2019 +0530 HDFS-14940. HDFS Balancer : Do not allow to set balancer maximum network bandwidth more than 1TB. Contributed by hemanthboyina. --- .../org/apache/hadoop/hdfs/server/common/HdfsServerConstants.java | 2 ++ .../org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java | 6 ++++++ .../test/java/org/apache/hadoop/hdfs/TestBalancerBandwidth.java | 8 ++++++++ 3 files changed, 16 insertions(+) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/common/HdfsServerConstants.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/common/HdfsServerConstants.java index 7434347..6522137 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/common/HdfsServerConstants.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/common/HdfsServerConstants.java @@ -368,4 +368,6 @@ public interface HdfsServerConstants { long BLOCK_GROUP_INDEX_MASK = 15; byte MAX_BLOCKS_IN_GROUP = 16; + // maximum bandwidth per datanode 1TB/sec. + long MAX_BANDWIDTH_PER_DATANODE = 1099511627776L; } diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java index d7f4f85..a51fde6 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java @@ -1430,6 +1430,12 @@ public class NameNodeRpcServer implements NamenodeProtocols { */ @Override // ClientProtocol public void setBalancerBandwidth(long bandwidth) throws IOException { + if (bandwidth > HdfsServerConstants.MAX_BANDWIDTH_PER_DATANODE) { + throw new IllegalArgumentException( + "Bandwidth should not exceed maximum limit " + + HdfsServerConstants.MAX_BANDWIDTH_PER_DATANODE + + " bytes per second"); + } checkNNStartup(); namesystem.setBalancerBandwidth(bandwidth); } diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestBalancerBandwidth.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestBalancerBandwidth.java index 6bbe3a1..9eb3d9f 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestBalancerBandwidth.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestBalancerBandwidth.java @@ -33,6 +33,7 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hdfs.server.datanode.DataNode; import org.apache.hadoop.hdfs.tools.DFSAdmin; import org.apache.hadoop.test.GenericTestUtils; +import org.apache.hadoop.util.ToolRunner; import org.junit.Test; /** @@ -101,6 +102,13 @@ public class TestBalancerBandwidth { runGetBalancerBandwidthCmd(admin, args, newBandwidth); args = new String[] { "-getBalancerBandwidth", dn2Address }; runGetBalancerBandwidthCmd(admin, args, newBandwidth); + + // test maximum bandwidth allowed + assertEquals(0, ToolRunner.run(admin, + new String[] {"-setBalancerBandwidth", "1t"})); + + assertEquals(-1, ToolRunner.run(admin, + new String[] {"-setBalancerBandwidth", "1e"})); } } --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org