You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by su...@apache.org on 2019/11/21 19:13:07 UTC
[hadoop] branch branch-3.2 updated: HDFS-14940. HDFS Balancer : Do
not allow to set balancer maximum network bandwidth more than 1TB.
Contributed by hemanthboyina.
This is an automated email from the ASF dual-hosted git repository.
surendralilhore pushed a commit to branch branch-3.2
in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/branch-3.2 by this push:
new 39366b1 HDFS-14940. HDFS Balancer : Do not allow to set balancer maximum network bandwidth more than 1TB. Contributed by hemanthboyina.
39366b1 is described below
commit 39366b1370072e7bd6093241a58486a3f69b01a5
Author: Surendra Singh Lilhore <su...@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 21ed9f9..78d4289 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
@@ -373,4 +373,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 f34a298..e39956b 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 1310f45..24d1530 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;
/**
@@ -102,6 +103,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-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org