一、前言
本文主要介紹 hbase 常用的三種簡單的容災備份方案,即copytable、export/import、snapshot。分別介紹如下:
copytable可以將現有表的資料複製到新錶中,具有以下特點:
usage: copytable [general options] [--starttime=x] [--endtime=y] [--new.name=new] [--peer.adr=adr]
同集群下 copytable
hbase org.apache.hadoop.hbase.mapreduce.copytable --new.name=tablecopy tableorig
不同集群下 copytable
# 兩表名稱相同的情況hbase org.apache.hadoop.hbase.mapreduce.copytable \--peer.adr=dstclusterzk:2181:/hbase tableorig# 也可以指新的表名hbase org.apache.hadoop.hbase.mapreduce.copytable \--peer.adr=dstclusterzk:2181:/hbase \--new.name=tablecopy tableorig
hbase org.apache.hadoop.hbase.mapreduce.copytable \--starttime=1265875194289 \--endtime=1265878794289 \--peer.adr=server1,server2,server3:2181:/hbase \--families=myoldcf:mynewcf,cf2,cf3 testtable
# hbase org.apache.hadoop.hbase.mapreduce.copytable --help
# exporthbase org.apache.hadoop.hbase.mapreduce.export [ [ ]]# inporthbase org.apache.hadoop.hbase.mapreduce.import
匯出命令
hbase org.apache.hadoop.hbase.mapreduce.export tablename hdfs 路徑/tablename.db
匯入命令
hbase org.apache.hadoop.hbase.mapreduce.import tablename hdfs 路徑/tablename.db
hbase 的快照 (snapshot) 功能允許您獲取表的副本 (包括內容和元資料),並且效能開銷很小。因為快照儲存的僅僅是表的元資料和 hfiles 的資訊。快照的clone
操作會從該快照建立新錶,快照的restore
操作會將表的內容還原到快照節點。clone
和restore
操作不需要複製任何資料,因為底層 hfiles(包含 hbase 表資料的檔案) 不會被修改,修改的只是表的元資料資訊。
hbase 快照功能預設沒有開啟,如果要開啟快照,需要在hbase-site.xml
檔案中新增如下配置項:
hbase.snapshot.enabledname> truevalue>property>
快照的所有命令都需要在 hbase shell 互動式命令列中執行。
1. take a snapshot
# 拍攝快照hbase> snapshot '表名', '快照名'
預設情況下拍攝快照之前會在記憶體中執行資料重新整理。以保證記憶體中的資料報含在快照中。但是如果你不希望包含記憶體中的資料,則可以使用skip_flush
選項禁止重新整理。
# 禁止記憶體重新整理hbase> snapshot '表名', '快照名',
2. listing snapshots
# 獲取快照列表hbase> list_snapshots
3. deleting snapshots
# 刪除快照hbase> delete_snapshot '快照名'
4. clone a table from snapshot
# 從現有的快照建立一張新錶hbase> clone_snapshot '快照名', '新錶名'
5. restore a snapshot
將表恢復到快照節點,恢復操作需要先禁用表
hbase> disable '表名'hbase> restore_snapshot '快照名'
這裡需要注意的是:是如果 hbase 配置了基於 replication 的主從複製,由於 replication 在日誌級別工作,而快照在檔案系統級別工作,因此在還原之後,會出現副本與主伺服器處於不同的狀態的情況。這時候可以先停止同步,所有伺服器還原到一致的資料點後再重新建立同步。
online apache hbase backups with copytable
apache hbase ™ reference guide
hbase複製表的結構 HBase 的表結構
hbase 是乙個nosql資料庫,用於處理海量資料,可以支援10億行百萬列的大表,下面就了解一下資料是如何存放在hbase表中的 為了更好的理解hbase表的思路,先回顧一下關聯式資料庫中表的處理方式 例如有乙個使用者表user info,有欄位 id name tel,表名和字段需要在建表時指定...
hbase 複製表資料
copytable是hbase提供的乙個資料同步工具,可以用於同步表的部分或全部資料 使用步驟 1.建立目標表。表的列族和原表列族保持一致。如果不一致可以修改 先增加新的 alter 表名 後刪除舊的 alter 表名 delete cf 2.進入到hbase的bin目錄下執行命令 hbase or...
HBase基礎 HBase邏輯結構
邏輯上,hbase的資料模型和關係型資料庫類似,資料儲存在一張表中,有行有列。注意,這個結構為邏輯結構,並非真正的儲存格式。是用來理解hbase。personal info office info row key name city phone telephone address row key1 ...