hbck源碼系列(六)--Orphan的異常定位和修復

原文鏈接:https://blog.csdn.net/shfshihuafeng/article/details/90734562

一. 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章