Index: LoadBalancer.java =================================================================== --- LoadBalancer.java (版本 1135362) +++ LoadBalancer.java (工作副本) @@ -189,6 +189,13 @@ int min = numRegions / numServers; int max = numRegions % numServers == 0 ? min : min + 1; + // Using to check banance result. + StringBuilder strBalanceParam = new StringBuilder(); + strBalanceParam.append("Balance parameter: numRegions=").append(numRegions) + .append(", numServers=").append(numServers).append(", max=") + .append(max).append(", min=").append(min); + LOG.info(strBalanceParam.toString()); + // Balance the cluster // TODO: Look at data block locality or a more complex load to do this List regionsToMove = new ArrayList(); @@ -210,7 +217,8 @@ List regions = randomize(server.getValue()); int numToOffload = Math.min(regionCount - max, regions.size()); int numTaken = 0; - for (int i = regions.size() - 1; i >= 0; i--) { + + for (int i = 0; i < regions.size(); i++) { HRegionInfo hri = regions.get(i); // Don't rebalance meta regions. if (hri.isMetaRegion()) continue; @@ -337,10 +345,10 @@ } // All done! - LOG.info("Calculated a load balance in " + (endTime-startTime) + "ms. " + - "Moving " + regionsToMove.size() + " regions off of " + - serversOverloaded + " overloaded servers onto " + - serversUnderloaded + " less loaded servers"); + LOG.info("All done! Calculated a load balance in " + (endTime - startTime) + + "ms. " + "Moving " + regionsToMove.size() + " regions off of " + + serversOverloaded + " overloaded servers onto " + serversUnderloaded + + " less loaded servers"); return regionsToMove; }