在hbck命令输出中出现“Found lingering reference file”
在hbck命令输出中出现“Found lingering reference file”
现象描述
残留的引用文件指的是连接hfile的引用文件,这个hfile在HDFS中是不存在。
Hback工具报出以下错误:
hbase/bin> hbase hbck 2016-03-08 17:57:55,858 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable INFO: Watching file:/home/pankaj/v1r2cxx/hbase/hbase/conf/log4j.properties for changes with interval : 60000 HBaseFsck command line options: 2016-03-08 17:57:58,179 INFO [main] util.HBaseFsck: Checking and fixing region consistency ERROR: Region { meta => null, hdfs => hdfs://10.10.106.212:8020/hbase/data/default/t1/7fbfdb516dff6013009143c4ba22cb89, deployed => , replicaId => 0 } on HDFS, but not listed in hbase:meta or deployed on any region server 2016-03-08 17:57:58,218 INFO [main] util.HBaseFsck: Computing mapping of all store files 2016-03-08 17:57:58,253 INFO [main] util.HBaseFsck: Validating mapping using HDFS state ERROR: Found lingering reference file hdfs://10.10.106.212:8020/hbase/data/default/t1/7fbfdb516dff6013009143c4ba22cb89/cf1/64d2e118ab1347a59aeb90f206853dc5.8fcda14355e599b20e8ea7f66f86b9d0 Summary: Table hbase:meta is okay. Number of regions: 1 Deployed on: host-10-10-106-212,16020,1457430545905 Table hbase:acl is okay. Number of regions: 1 Deployed on: host-10-10-106-212,16020,1457430545905 Table t1 is okay. Number of regions: 2 Deployed on: host-10-10-106-212,16020,1457430545905 Table hbase:namespace is okay. Number of regions: 1 Deployed on: host-10-10-106-212,16020,1457430545905 2 inconsistencies detected. Status: INCONSISTENT 2016-03-08 17:57:58,418 INFO [main] client.ConnectionManager$HConnectionImplementation: Closing master protocol: MasterService 2016-03-08 17:57:58,418 INFO [main] client.ConnectionManager$HConnectionImplementation: Closing zookeeper sessionid=0x10101ea9abf0181
可能原因
在一个故障场景,子region A在table目录下已经成功创建,但是在创建子region B的过程中region server出故障了。因此split region失败了并且在table目录的文件系统留下一个孤立的子目录。
基于Flink+Doris构建高性能高扩展的全端实时数据仓库教程
数据仓库建模和实战教程(理论和业务结合)
Python实战金融风控回归模型(附代码)
【Python入门教程】零基础教程/全套教程|港大学霸系统精讲
MSF渗透实战训练营——入门至入狱系列【网络安全】
基于Flink+Hudi构建企业万亿级云上实时数据湖教程
python量化交易
自动化运维脚本编程:CMD/DOS批处理实战案例学习
数据仓库建模和实战教程(理论和业务结合)
Python实战金融风控回归模型(附代码)
【Python入门教程】零基础教程/全套教程|港大学霸系统精讲
MSF渗透实战训练营——入门至入狱系列【网络安全】
基于Flink+Hudi构建企业万亿级云上实时数据湖教程
python量化交易
自动化运维脚本编程:CMD/DOS批处理实战案例学习
当打开region,只清理”.split”目录,而不是孤立的子regions,这些孤立的子regions在先前失败的split操作过程中可能被移到table目录。因此将来,如果父region split成功,那么之前失败的子region A的引用hfile将会无效,hback将会报出以上错误。
定位思路
无。
处理步骤
- Hback工具提供命令-fixReferenceFiles来使这样残留的引用文件保留在其他位置。由于这会引起其他的不一致,请使用hbck -repair命令来解决这些不一致。 hbase hbck -repair <tableName>
- 运行hbck命令来复查-repair命令是否修复了所有的不一致。 hbase hbck 如果hback命令输出结果不一致,请重复1。
参考信息
Hbck命令有很多其他选项,请运行以下命令来获得更详细的用法。
hbase hbck -help