Snapshots常用命令


HBase Snapshots允許你對一個表進行快照(即可用副本),它不會對Region Servers產生很大的影響,它進行復制和 恢復操作的時候不包括數據拷貝。導出快照到另外的集群也不會對Region Servers產生影響。 下面告訴你如何使用Snapshots功能

1.開啟快照支持功能,在0.95+之后的版本都是默認開啟的,在0.94.6+是默認關閉  

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

 

2.給表建立快照,不管表是啟用或者禁用狀態,這個操作不會進行數據拷貝

$ ./bin/hbase shell 
hbase> snapshot 'myTable', 'myTableSnapshot-122112'

 

3.列出已經存在的快照

$ ./bin/hbase shell 
hbase> list_snapshots

 

4.刪除快照

$ ./bin/hbase shell 
hbase> delete_snapshot 'myTableSnapshot-122112'

 

5.從快照復制生成一個新表

$ ./bin/hbase shell 
hbase> clone_snapshot 'myTableSnapshot-122112', 'myNewTestTable'

 

6.用快照恢復數據,它需要先禁用表,再進行恢復

$ ./bin/hbase shell
hbase> disable 'myTable' hbase> restore_snapshot 'myTableSnapshot-122112'


提示:因為備份(replication)是系統日志級別的,而快照是文件系統級別的,當使用快照恢復之后,副本會和master出於不同的狀態,如果你需要使用恢復的話,你要停止備份,並且重置bootstrap。

如果是因為不正確的客戶端行為導致數據丟失,全表恢復又需要表被禁用,可以采用快照生成一個新表,然后從新表中把需要的數據用map-reduce拷貝到主表當中。

 

7.復制到別的集群當中

該操作要用hbase的賬戶執行,並且在hdfs當中要有hbase的賬戶建立的臨時目錄(hbase.tmp.dir參數控制)

采用16個mappers來把一個名為MySnapshot的快照復制到一個名為srv2的集群當中

$ bin/hbase class org.apache.hadoop.hbase.snapshot.tool.ExportSnapshot -snapshot MySnapshot -copy-to hdfs://srv2:8020/hbase -mappers 16


免責聲明!

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



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