diff --git hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java index af5ddf2..3d783a8 100644 --- hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java +++ hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java @@ -512,14 +512,14 @@ public class StochasticLoadBalancer extends BaseLoadBalancer { // Now go through all of the tables we have seen and keep the max number // of regions of this table a single region server is hosting. - for (String tableName : tableRegionsOnCurrentServer.keySet()) { - Integer thisCount = tableRegionsOnCurrentServer.get(tableName).toInteger(); + for (Entry currentServerEntry: tableRegionsOnCurrentServer.entrySet()) { + String tableName = currentServerEntry.getKey(); + Integer thisCount = currentServerEntry.getValue().toInteger(); Integer maxCountSoFar = tableCostSeenSoFar.get(tableName); if (maxCountSoFar == null || thisCount.compareTo(maxCountSoFar) > 0) { tableCostSeenSoFar.put(tableName, thisCount); } - } } @@ -560,11 +560,6 @@ public class StochasticLoadBalancer extends BaseLoadBalancer { max += 1; - // Only compute the data locality for moved regions. - if (initialRegionMapping.equals(sn)) { - continue; - } - List dataOnServers = regionFinder.getTopBlockLocations(region); // If we can't find where the data is getTopBlock returns null.