一. Orphan修復風險
我們瞭解了hbck對orphan修復原理後,知道orphan是根據hdfs的Hfile修復的regioninfo文件(如果沒有Hfile,則直接將該region進行sideline),再刪除該region.
HBCK這種修復存在的風險,是由於region變遷導致:
(1)如果region的數據hfile數據爲空,但是內存存在數據,突然master宕機,此時,由於原先的region被遷移走了,重啓master會導致數據丟失。
(2)對於region的變化,對功能的影響,需要根據實際應用評估。
二.異常定位
什麼樣的異常屬於Orphan?
ERROR: Orphan region in HDFS: Unable to load .regioninfo from table testorphan1 in hdfs
dir hdfs://hadoop01:9000/hbase/data/default/testorphan1/4be88dea6a76bf0b91d2557465b664ac! It may be an invalid format or version file. Treating as an orphaned regiondir.
java.io.FileNotFoundException: File does not exist:
/hbase/data/default/testorphan1/4be88dea6a76bf0b91d2557465b664ac/.regioninfo
ERROR: There is a hole in the region chain between 100 and 200. You need to create a new
.regioninfo and region dir in hdfs to plug the hole.
ERROR: Found inconsistency in table testorphan1
三.orphan的異常修復
如果出現第二節的異常, 怎樣修復能確保不丟失數據?
可以按照如下步驟修復:
1. flush region/table
2.hbck -fixHdfsOrphans table
3. hbase hbck -fixHdfsHoles table
4.hbase hbck -fixMeta
5.hbase hbck -fixAssignment
————————————————
版權聲明:本文爲CSDN博主「shfshihuafeng」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/shfshihuafeng/article/details/90734562