HBase Snapshot功能介紹


HBase在0.94之后提供了Snapshot功能,一個snapshot其實就是一組metadata信息的集合,它可以讓管理員將表恢復到以前的一個狀態。snapshot並不是一份拷貝,它只是一個文件名的列表,並不拷貝數據。一個全的snapshot恢復以為着你可以回滾到原來的表schema和創建snapshot之前的數據。在0.95之后默認開啟snapshot功能,之前版本的需要手動開啟對snapshot的支持,修改hbas-site.xml文件添加

<property>    
    <name>hbase.snapshot.enabled</name>    
    <value>true</value>
</property>

主要提供了以下幾個操作(目前只是對單個表進行這樣的操作):

#take snapshot
hbase> snapshot 'tableName', 'snapshotName'
 
#list snapshots
hbase> list_snapshots 
#delete snapshot
hbase> delete_snapshot 'snapshotName'
 
#clone snapshot
hbase> clone_snapshot 'src_snapshot','dest_snapshot'
 
#restore snapshot, 首先必須將表disable掉
hbase> restore_snapshot 'snapshotName'

 

實踐的問題

目前我們線上的集群是hbase-0.94的,開啟了snapshot功能,實踐了一下,有以下幾個問題:

  • 元數據存在不一致狀態時,一般的hbase一做split的時候就會出現暫態的元數據不一致
  • 需要做restore的時候它會先對表的當前狀態做一下snapshot,成功之后才會去restore,這個有點沒必要,有時候我們正是因為元數據不一致才會去做restore,這樣就會沒辦法去做
  • 生成snapshot的時候只能是一張表一張表去做,不知道后面的hbase版本會不會一個操作解決所有表的snapshot
 
后期計划升級hbase,嘗試新版本的snapshot會不會更實用可靠一些。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM