Details
Description
When StochasticLoadBalancer attempts to balance a local RS with multiple regions with another local RS that had no regions the HBase shell call of 'balancer' gets the following NPE:
ERROR: java.io.IOException at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2175) at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:106) at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:130) at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:107) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.NullPointerException at org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer$Cluster.getLeastLoadedTopServerForRegion(BaseLoadBalancer.java:863) at org.apache.hadoop.hbase.master.balancer.StochasticLoadBalancer$LocalityBasedCandidateGenerator.generate(StochasticLoadBalancer.java:724) at org.apache.hadoop.hbase.master.balancer.StochasticLoadBalancer.balanceCluster(StochasticLoadBalancer.java:325) at org.apache.hadoop.hbase.master.balancer.StochasticLoadBalancer.balanceCluster(StochasticLoadBalancer.java:263) at org.apache.hadoop.hbase.master.HMaster.balance(HMaster.java:1264) at org.apache.hadoop.hbase.master.MasterRpcServices.balance(MasterRpcServices.java:413) at org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java:52450) at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2133) ... 4 more
Issue only occurs when one of the RSs has no regions before balancing. Also, unsure if distributed RSs would also have same issue. Attached 'hbase-mwarhaftig-master-Matts-MBP.log' is master's log of the error occurring.
SimpleLoadBalancer rebalances correctly when used in the same situation.
Attachments
Attachments
Issue Links
- duplicates
-
HBASE-14653 Balancer is getting NullPointerExceptions
- Resolved