關於Requested row out of range for doMiniBatchMutation on HRegion

1 異常信息如下:
019-11-21 11:12:49,078 [http-nio-17374-exec-6] ERROR c.fengjr.report.center.web.mq.receive.ReceiveMQ_1_3_4_8_9_18_19_32_48_Controller - 接受結算MQ異常
org.springframework.data.hadoop.hbase.HbaseSystemException: Failed 1 action: org.apache.hadoop.hbase.exceptions.FailedSanityCheckException: Requested row out of range for doMiniBatchMutation on HRegion report_mq_capital_flow,1568795134742_A909A800-AA62-407C-9AAA-C68742784C6C:12:REPAY,1571997163768.64e78b56d325db9195cf2e2f75e13c12., startKey='1568795134742_A909A800-AA62-407C-9AAA-C68742784C6C:12:REPAY', getEndKey()='1570516037331_A8AA0800-A0C6-660A-478A-C4A6226B2686:15:REPAY', row='1574305968975_80D367E9-1EF2-42EF-9458-A61FD40B9717:4:REPAY'
  at org.apache.hadoop.hbase.regionserver.RSRpcServices.doBatchOp(RSRpcServices.java:765)
  at org.apache.hadoop.hbase.regionserver.RSRpcServices.doNonAtomicRegionMutation(RSRpcServices.java:715)
  at org.apache.hadoop.hbase.regionserver.RSRpcServices.multi(RSRpcServices.java:2148)
  at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:33656)
  at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2182)
  at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112)
  at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:185)
  at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:165)
  • 初步分析,由於region分佈,存在rowkey空洞,導致rowkey不連續。
  • 據實際該表的region的分佈情況,確實存在空洞。異常信息中,需要的寫入的rowkey,應該在空洞的範圍區間。
2 嘗試修復rowkey空洞
 su hbase -s /bin/sh -c 'hbase hbck -repairHoles 'report_batch_num''
  • 執行後,region空洞得到補充。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章