更新时间:2023-06-01 GMT+08:00
HBase文件丢失导致Region状态长时间为RIT
用户问题
数据迁移到新集群后,HBase的Region状态为RIT或FAILED_OPEN。
原因分析
- 登录到集群的Core节点查看RegionServer日志,报错:
- “Region‘3b3ae24c65fc5094bc2acfebaa7a56de’”打开失败,Region状态被设置为FAILED_OPEN。
- “Region‘b7b3faab86527b88a92f2a248a54d3dc’”下的一个文件找不到报错FileNotFoundException。
- 在HBase客户端中执行hbase hbck命令检查Region,报错:
ERROR: Found lingering reference file hdfs://hacluster/hbase/news_user_actions/3b3ae24c65fc5094bc2acfebaa7a56de/meta/0f47cda55fa44cf9aa2599079894aed6.b7b3faab86527b88a92f2a248a54d3dc
从引用文件可以看出,‘3b3ae24c65fc5094bc2acfebaa7a56de’Region是‘ b7b3faab86527b88a92f2a248a54d3dc’的子Region,子Region引用了父Region的文件,父Region的文件在迁移过程中因为未知原因丢失了,导致子Region找不到引用文件。
这种异常并不能通过简单的重试可解决,所以Region会长时间处于RIT状态。
处理步骤
- 在HDFS客户端执行以下命令删除2查看到的残留文件:
hdfs dfs -rmr 残留文件所在的HDFS路径
例如:
hdfs dfs -rmr /hbase/news_user_actions/3b3ae24c65fc5094bc2acfebaa7a56de/meta/0f47cda55fa44cf9aa2599079894aed6.b7b3faab86527b88a92f2a248a54d3dc
父主题: 使用HBase