diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java index 75a8978f09ee..b9585b55b294 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java @@ -99,8 +99,7 @@ public String getRack(ServerName server) { * The constructor that uses the basic MetricsBalancer */ protected BaseLoadBalancer() { - metricsBalancer = new MetricsBalancer(); - createRegionFinder(); + this(null); } /** @@ -1052,7 +1051,9 @@ public void setConf(Configuration conf) { this.onlySystemTablesOnMaster = LoadBalancer.isSystemTablesOnlyOnMaster(this.config); this.rackManager = new RackManager(getConf()); + useRegionFinder = config.getBoolean("hbase.master.balancer.uselocality", true); if (useRegionFinder) { + regionFinder = new RegionLocationFinder(); regionFinder.setConf(conf); } this.isByTable = conf.getBoolean(HConstants.HBASE_MASTER_LOADBALANCE_BYTABLE, isByTable);