简体   繁体   中英

HBase split command throws NOT splittable error

I tried to force split a region and received the following error.

ERROR: org.apache.hadoop.hbase.DoNotRetryIOException: 3dd9ec2b32c98131b39fbfa8266881f9 NOT splittable                                                                                       
        at org.apache.hadoop.hbase.master.assignment.SplitTableRegionProcedure.checkSplittable(SplitTableRegionProcedure.java:193)                                                          
        at org.apache.hadoop.hbase.master.assignment.SplitTableRegionProcedure.<init>(SplitTableRegionProcedure.java:115)                                                                   
        at org.apache.hadoop.hbase.master.assignment.AssignmentManager.createSplitProcedure(AssignmentManager.java:750)                                                                     
        at org.apache.hadoop.hbase.master.HMaster$3.run(HMaster.java:1859)                                                                                                                  
        at org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil.submitProcedure(MasterProcedureUtil.java:134)                                                                       
        at org.apache.hadoop.hbase.master.HMaster.splitRegion(HMaster.java:1851)                                                                                                            
        at org.apache.hadoop.hbase.master.MasterRpcServices.splitRegion(MasterRpcServices.java:808)                                                                                         
        at org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java)                                                             
        at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:413)                                                                                                                   
        at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:130)                                                                                                                  
        at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324)                                                                                                        
        at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304)

Anyone has insight about this error?

I am using Cloudera 6.1.1 and HBase 2.1.0.

This is error returned when you trying to split:

  • region of meta table
  • region which in CLOSED/CLOSING state
  • region has references to other region(region which is result of recent split of other region)

I think, you faced last case.
When HBase split region it creates 2 new regions(children) and links it to region currently splitting(parent). Creating children regions more or less 'instant' operation which take a little time. This is due to files which contains data of parent region( store files) not touched during split: HBase delays real split of data files until compaction. Before compaction, each child region contain only special reference to parent region data. Until this reference exists, region considered as 'not splittable'.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM