Index: hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/DefaultLoadBalancer.java =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/DefaultLoadBalancer.java (revision 1503985) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/DefaultLoadBalancer.java (working copy) @@ -266,8 +266,8 @@ if (regionsToPut == 0) { regionsToPut = 1; - maxToTake--; } + maxToTake -= regionsToPut; underloadedServers.put(server.getKey().getServerName(), regionsToPut); } // number of servers that get new regions @@ -375,6 +375,10 @@ for (Map.Entry> server : serversByLoad.entrySet()) { int regionCount = server.getKey().getLoad(); + BalanceInfo balanceInfo = serverBalanceInfo.get(server.getKey().getServerName()); + if(balanceInfo != null) { + regionCount += balanceInfo.getNumRegionsAdded(); + } if(regionCount >= max) { break; }