From a104f0414179607f65b8aa3c73204087b1211eb0 Mon Sep 17 00:00:00 2001 From: Duo Zhang Date: Fri, 23 Apr 2021 16:42:11 +0800 Subject: [PATCH] HBASE-25806 Backport the region location finder initialization fix in HBASE-25802 --- .../hadoop/hbase/master/balancer/BaseLoadBalancer.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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);