Index: src/main/java/org/apache/hadoop/hbase/master/HMaster.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/master/HMaster.java (revision 1078386) +++ src/main/java/org/apache/hadoop/hbase/master/HMaster.java (working copy) @@ -863,8 +863,15 @@ region.getLog().closeAndDelete(); } - // 5. Trigger immediate assignment of the regions in round-robin fashion + // 5. see if there're idle region servers which don't carry any regions List servers = serverManager.getOnlineServersList(); + Map> assignments = null; + assignments = this.assignmentManager.getAssignments(); + if (servers.size() > assignments.size()) { + balance(); + } + + // 6. Trigger immediate assignment of the regions in round-robin fashion try { this.assignmentManager.assignUserRegions(Arrays.asList(newRegions), servers); } catch (InterruptedException ie) { @@ -872,7 +879,7 @@ throw new IOException(ie); } - // 5. If sync, wait for assignment of regions + // 7. If sync, wait for assignment of regions if(sync) { LOG.debug("Waiting for " + newRegions.length + " region(s) to be " + "assigned before returning");