hbase snapshot功能讓你對錶進行快照而不對 regionserver 產生太多影。快照,轉殖 和恢復操作不涉及資料拷貝。而且,將快照匯出到其他集群也不會對regionserver有影響。
0.94之前的版本,備份或轉殖的唯一方法就是利用 copytable/exporttable , 或在禁用表後複製hdfs中的所有hfiles。這些方法的缺點是你會降低regionserver的效能,或者你需要禁用表。那意味著不能讀寫,這在生產環境通常是不可接受的。
首先在配置項中開啟snapshot
hbase.snapshot.enabledname>
truevalue>
property>
建立乙個snapshot
無論表是否可用,你都可以做快照。snapshot操作不涉及到資料複製。
$ ./bin/hbase shell
hbase> snapshot 'mytable', 'mytablesnapshot-122112'
預設的行為是在snapshot之前刷一遍記憶體中的資料。這意味著記憶體中的資料也包括在snapshot之中。大多數情況中,這是我們所希望的。然而,如果你的配置可以忍受記憶體中的資料沒有刷進snapshot,你可以使用skip_flush 選項來關閉。
沒有辦法確定或**乙個非常規併發的插入,更新將包括在給定的快照中,是否啟用重新整理。快照只是在時間視窗中的表的表示。
快照操作到達每個區域伺服器所需的時間從幾秒鐘到一分鐘不等,取決於資源負載和硬體或網路的速度,以及其他因素。也沒有辦法知道乙個給定的插入或更新是在記憶體中還是被重新整理。
$ ./bin/hbase shell
hbase> list_snapshots
$ ./bin/hbase shell
hbase> delete_snapshot 'mytablesnapshot-122112'
從snapshot你可以建立一張資料與做snapshot時一樣的新錶。轉殖操作,不涉及資料拷貝,修改轉殖表也不影響snapshot和原始表。
$ ./bin/hbase shell
hbase> clone_snapshot 'mytablesnapshot-122112', 'mynewtesttable'
恢復操作需要表離線不可用,恢復操作將讓表回到snapshot時的狀態,同時改變資料和schema,如果必要的話。
$ ./bin/hbase shell
hbase> disable 'mytable'
hbase> restore_snapshot 'mytablesnapshot-122112'
exportsnapshot 工具 可以幫你拷貝所有與 snapshot相關的檔案到另外乙個集群,包括 (hfiles, logs, snapshot metadata) 。
$ bin/hbase org.apache
.hadoop
.hbase
.snapshot
snapshot的工作原理
snapshot的工作原理 首先,snapshot會占用磁碟空間,占用空間的多少是由變化資料的多少決定 極端情況下,所有的資料都有變化,就需要有與target lun一樣大小的lun。snapshot 開始工作的時候,在raid控制器的cache中建立乙個資料區域指標,與target的block一一...
HDFS快照snapshot功能
hdfs 快照是檔案系統的唯讀時間點副本。可以在檔案系統或整個檔案系統的子樹上拍攝快照。快照的一些常見用例是資料備份 防止使用者錯誤和災難恢復。hdfs 快照的實現是有效的 一旦目錄被設定為 snapshotable,就可以在任何目錄上拍攝快照。乙個快照目錄可以同時容納65,536個快照。快照目錄的...
Hbase 學習筆記 Hbase 概覽
hbase構建在 hdfs 之上,hbase內部管理的檔案全部儲存在hdfs 中 行鍵,table的主鍵,table中的記錄按照row key排序。型別為byte array 列簇,table在水平方向有乙個或者多個column family組成,乙個column family中可以由任意多個col...