Index: hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java (revision 124855) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java (working copy) @@ -54,7 +54,7 @@ * */ public abstract class BaseLoadBalancer implements LoadBalancer { - private static final int MIN_SERVER_BALANCE = 2; + protected static final int MIN_SERVER_BALANCE = 2; private volatile boolean stopped = false; /** Index: hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java (revision 124855) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java (working copy) @@ -185,6 +185,19 @@ } + @Override + protected boolean needsBalance(ClusterLoadState cs) { + if (cs.getNumServers() < MIN_SERVER_BALANCE) { + if (LOG.isDebugEnabled()) { + LOG.debug("Not running balancer because only " + cs.getNumServers() + + " active regionserver(s)"); + } + return false; + } + + return true; + } + /** * Given the cluster state this will try and approach an optimal balance. This * should always approach the optimal state given enough steps.