當你對HBase的 表做 了snapshot后,此時該表的元數據以及相關的link文件都存儲在snapshot中,之后,當你刪除該表的數據,詳情見HBase數據的刪除和更新,那HBase數據被成功刪除了,而,之前我們也對該表做了snapshot了。
問題來了:
刪除的數據是不是也被刪除了,如果被刪除了,那做的snapshot如何恢復數據?
用戶執行major_compact的時候,實際上會調用HStore中的archiveStoreFiles
archiveStoreFiles
創建archive路徑,并將StoreFiles移動到archive
resolveAndArchive
當執行major compact,HBase會將過期的數據直接放到archive中。
后面再清理,具體見:HMaster 功能之定期清理archive