Description
The default value of hbase.regions.slop is 0.001 in StochasticLoadBalancer (which is the default setting of hbase.master.loadbalancer.class).
However, in the both hbase-default.xml and online docs, the default value is 0.2. This value is specified in BaseLoadBalancer (which is an abstract class) and is inherited by SimpleLoadBalancer. However, as SimpleLoadBalancer is no longer used as the default load balancer, the value is obsolete.
The code structure is:
BaseLoadBalancer.java
public abstract class BaseLoadBalancer implements LoadBalancer { ... protected void setSlop(Configuration conf) { this.slop = conf.getFloat("hbase.regions.slop", (float) 0.2); }
StochasticLoadBalancer.java
public class StochasticLoadBalancer extends BaseLoadBalancer { ... @Override protected void setSlop(Configuration conf) { this.slop = conf.getFloat("hbase.regions.slop", 0.001F); }
I suggest to make the manual entry of hbase.regions.slop specify the different default values in different balancer classes.