diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java index a6bcbf9..c06ef0b 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java @@ -198,10 +198,15 @@ public class EnableTableHandler extends EventHandler { // need to potentially create some regions for the replicas List unrecordedReplicas = AssignmentManager.replicaRegionsNotRecordedInMeta( new HashSet(regionsToAssign.keySet()), services); - for (HRegionInfo h : unrecordedReplicas) { - regionsToAssign.put(h, - this.assignmentManager.getBalancer().randomAssignment(h, - serverManager.getOnlineServersList())); + Map> srvToUnassignedRegs = + this.assignmentManager.getBalancer().roundRobinAssignment(unrecordedReplicas, + serverManager.getOnlineServersList()); + if (srvToUnassignedRegs != null) { + for (Map.Entry> entry : srvToUnassignedRegs.entrySet()) { + for (HRegionInfo h : entry.getValue()) { + regionsToAssign.put(h, entry.getKey()); + } + } } } int regionsCount = regionsToAssign.size();