diff --git a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.java b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.java index 65053b8..0bfd216 100644 --- a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.java +++ b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.java @@ -203,9 +203,19 @@ public class RSGroupBasedLoadBalancer implements RSGroupableBalancer { for (RegionInfo region : regionList) { currentAssignmentMap.put(region, regions.get(region)); } - if(candidateList.size() > 0) { + if (candidateList.size() > 0) { assignments.putAll(this.internalBalancer.retainAssignment( currentAssignmentMap, candidateList)); + } else { + // need to assign system table even if its group is null + for (RegionInfo ri : regionList) { + if (ri.getTable().isSystemTable()) { + assignments.putAll(this.internalBalancer.retainAssignment( + currentAssignmentMap, servers)); + LOG.debug("assign system table " + ri); + break; + } + } } } diff --git a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.java b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.java index c5e4619..0be4faf 100644 --- a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.java +++ b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.java @@ -201,7 +201,7 @@ public class TestRSGroupsWithACL extends SecureTestUtil{ String currentCoprocessors = conf.get(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY); String coprocessors = RSGroupAdminEndpoint.class.getName(); if (currentCoprocessors != null) { - coprocessors += "," + currentCoprocessors; + coprocessors = currentCoprocessors + "," + coprocessors; } conf.set(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY, coprocessors); conf.set(HConstants.HBASE_MASTER_LOADBALANCER_CLASS,