HBase split 命令抛出 NOT splittable 错误

Nai*_*tel 3 hadoop hbase cloudera

我尝试强制分割一个区域并收到以下错误。

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)
Run Code Online (Sandbox Code Playgroud)

有人对这个错误有深入的了解吗?

我正在使用 Cloudera 6.1.1 和 HBase 2.1.0。

Lag*_*ang 5

这是您尝试拆分时返回的错误:

  • meta表的区域
  • 处于 CLOSED/CLOSING 状态的区域
  • 区域引用了其他区域(区域是其他区域最近分裂的结果)

我想,你遇到了最后一个案例。
当 HBase 分割区域时,它会创建 2 个新区域(子区域)并将其链接到当前分割的区域(父区域)。创建子区域或多或少是“即时”操作,需要一点时间。这是由于包含父区域(存储文件)数据的文件在拆分期间未触及:HBase 延迟了数据文件的真正拆分,直到压缩。在压缩之前,每个子区域仅包含对父区域数据的特殊引用。在该引用存在之前,区域被视为“不可分割”。

  • 尝试压缩这两个新区域。这应该删除指向父级的链接 (3认同)