Hbase備份與恢復(快照技術)


什么是快照

快照就是一份元信息的合集,允許管理員恢復到表的先前狀態。快照不是表的復制而是一個文件名稱列表,因而不會復制數據。

快照的作用

HBase中存在的備份或克隆表的方法就是使用復制/導出表或者在關閉表之后拷貝HDFS中的所有HFile。
復制或導出是通過一系列工具調用MapReduce來掃描並復制表,這樣會對RegionServer有直接的影響。關閉表會停止所有的讀寫操作,實際環境中往往無法接受。
相比之下HBase快照允許管理員不拷貝數據,而直接克隆一張表,這對域服務器產生的影響最小。將快照導出至其他集群不會直接影響到任何服務器;導出只是帶有一些額外邏輯的群間數據同步。
完全快照恢復是指恢復到之前的“表結構”以及當時的數據,快照之后發生的數據不會恢復。

快照優勢

導出快照與復制/導出表除了更好地保持一致性外,主要的不同在於導出快照是在HDFS的層面操作的。 這意味着HMaster和域服務器與操作無關。因此不需要為不必要的數據創建緩存空間,也不會有掃描過程。因為大量對象創建引起的GC暫停,對於HBase 來說主要性能影響就是DataNode額外的網絡和磁盤負載。

使用快照備份數據

1.配置文件配置可以使用快照功能

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

2.新建一個快照

> snapshot 'www','www001'

3.查看所有的快照

> list_snapshots

4.使用快照克隆一個表

> clone_snapshot 'www001','wwww'

5.恢復數據到快照

> disable 'www'
> restore_snapshot 'www001'

6.刪除快照

> delete_snapshot 'www001'

7.使用ExportSnapshot將當前快照導出至其他集群,導出工具不會影響到域服務器的負載,只是在HDFS層面,所以需要指定HDFS路徑(其它集群的hbase根目錄)

hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshotName -copy-to hdfs://server1:8082/hbase


免責聲明!

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



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