You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2018/04/18 15:45:59 UTC

hbase git commit: HBASE-20449 The minimun number of region should be configurable in Normalizer

Repository: hbase
Updated Branches:
  refs/heads/master f4f2b6823 -> 80cbc0d1f


HBASE-20449 The minimun number of region should be configurable in Normalizer

Signed-off-by: tedyu <yu...@gmail.com>


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/80cbc0d1
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/80cbc0d1
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/80cbc0d1

Branch: refs/heads/master
Commit: 80cbc0d1fefdba1492d7ec6e580ad54a2960cbdb
Parents: f4f2b68
Author: wangyu <wa...@cmss.chinamobile.com>
Authored: Wed Apr 18 18:09:03 2018 +0800
Committer: tedyu <yu...@gmail.com>
Committed: Wed Apr 18 08:45:52 2018 -0700

----------------------------------------------------------------------
 hbase-common/src/main/resources/hbase-default.xml         |  5 +++++
 .../hbase/master/normalizer/SimpleRegionNormalizer.java   | 10 +++++++---
 2 files changed, 12 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/80cbc0d1/hbase-common/src/main/resources/hbase-default.xml
----------------------------------------------------------------------
diff --git a/hbase-common/src/main/resources/hbase-default.xml b/hbase-common/src/main/resources/hbase-default.xml
index 61f0461..7983ea3 100644
--- a/hbase-common/src/main/resources/hbase-default.xml
+++ b/hbase-common/src/main/resources/hbase-default.xml
@@ -617,6 +617,11 @@ possible configurations would overwhelm and obscure the important.
     <description>Period at which the region normalizer runs in the Master.</description>
   </property>
   <property>
+    <name>hbase.normalizer.min.region.count</name>
+    <value>3</value>
+    <description>configure the minimum number of regions</description>
+  </property>
+  <property>
     <name>hbase.regions.slop</name>
     <value>0.001</value>
     <description>Rebalance if any regionserver has average + (average * slop) regions.

http://git-wip-us.apache.org/repos/asf/hbase/blob/80cbc0d1/hbase-server/src/main/java/org/apache/hadoop/hbase/master/normalizer/SimpleRegionNormalizer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/normalizer/SimpleRegionNormalizer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/normalizer/SimpleRegionNormalizer.java
index ea2187b..f02ccf4 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/normalizer/SimpleRegionNormalizer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/normalizer/SimpleRegionNormalizer.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
+import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.HBaseIOException;
 import org.apache.hadoop.hbase.RegionMetrics;
 import org.apache.hadoop.hbase.ServerName;
@@ -61,11 +62,14 @@ import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;
 public class SimpleRegionNormalizer implements RegionNormalizer {
 
   private static final Logger LOG = LoggerFactory.getLogger(SimpleRegionNormalizer.class);
-  private static final int MIN_REGION_COUNT = 3;
+  private int minRegionCount;
   private MasterServices masterServices;
   private MasterRpcServices masterRpcServices;
   private static long[] skippedCount = new long[NormalizationPlan.PlanType.values().length];
 
+  public SimpleRegionNormalizer() {
+    minRegionCount = HBaseConfiguration.create().getInt("hbase.normalizer.min.region.count", 3);
+  }
   /**
    * Set the master service.
    * @param masterServices inject instance of MasterServices
@@ -131,10 +135,10 @@ public class SimpleRegionNormalizer implements RegionNormalizer {
       getRegionsOfTable(table);
 
     //TODO: should we make min number of regions a config param?
-    if (tableRegions == null || tableRegions.size() < MIN_REGION_COUNT) {
+    if (tableRegions == null || tableRegions.size() < minRegionCount) {
       int nrRegions = tableRegions == null ? 0 : tableRegions.size();
       LOG.debug("Table " + table + " has " + nrRegions + " regions, required min number"
-        + " of regions for normalizer to run is " + MIN_REGION_COUNT + ", not running normalizer");
+        + " of regions for normalizer to run is " + minRegionCount + ", not running normalizer");
       return null;
     }