usage: import [options] by default import will load data directly into hbase. to instead generate其中資料檔案位置可為本地檔案目錄,也可以分布式檔案系統hdfs的路徑。hfiles of data to prepare for a bulk data load, pass the option:
-dimport.bulk.output=/path/for/output
for performance consider the following options:
-dmapred.map.tasks.speculative.execution=false
-dmapred.reduce.tasks.speculative.execution=false
當其為前者時,直接指定即可,也可以加字首file:///
而當其偉後者時,必須明確指明hdfs的路徑,例如hdfs://mymaster:9000/path
另外,該介面類還提供了一些其它的方法,例如表與表之間的資料拷貝,匯入tsv檔案等,可回車鍵檢視
把某個表(table1)從集群1遷移到集群2(兩個集群互相看不見),步驟如下
如果你打算部署hbase,那麼你一定要考慮如何備份的問題,下面是作者列舉的他所知道的一些備份方式,如果有遺漏的,歡迎補充。
hbase提供了export的mapreduce job(org.apache.hadoop.hbase.mapreduce.export)可以將表匯出為hdfs的順序檔案(sequencefile),這是由hbase-1684貢獻的工具。此工具一次只能操作一張表,匯出的順序檔案可以通過import工具匯入hbase。
在兩個hbase集群之間複製資料,也可以通過copy table工具,這也是mapreduce實現的,一次操作一張表。
你也可以利用hdfs的distcp工具將整個/hbase複製到另外乙個hdfs集群,但這可能導致複製的資料不一致,所以盡量不要這麼做,除非先將源集群停止服務,參考:
由於dictcp做集群複製存在資料不一致的問題,mozilla的開發人員開發了乙個backup工具,具體情況請參考他們的這篇migrating hbase in the trenches。
hbase從0.89版本開始引入集群複製功能,所以我們也可以利用此功能將資料備份到另乙個集群。複製的目標集群不需要和源集群同配置,因此可以將資料通過複製備份到乙個較低成本的集群中。
在著名的hbase-50中就提出了snapshot的問題,儘管在gsoc 2010期間做了大量的工作,但不知由於什麼原因,一直沒有合併進hbase的主流分支。jira上已經有乙個patch,但已經較長時間無進展了。
hdfs中的資料是有多份拷貝的,你也可以把這多份的拷貝當作一種備份,它雖然不能防止資料損壞,但能容忍部分硬體故障
HBase 備份及恢復
注意事項 1.hbase版本需要保持一致,否則資料無法恢復 本方案使用export及import方法,還有其他方法可以實現,暫不涉及。1.備份,以表為單位進行匯出 bin hbase org.apache.hadoop.hbase.mapreduce.export table name dst pa...
hbase 備份及恢復
b 1,hbase自帶的備份恢復工具 b hbase org.apache.hadoop.hbase.mapreduce.export table1 home fred table1 hbase org.apache.hadoop.hbase.mapreduce.import table1 home...
HBase資料備份恢復的幾種機制總結
1 replication,通過類似mysql 主從複製方式進行複製,基於hlog 在應用場景個人感覺比較重要的一點是可以隔離計算分析型的操作和實時性操作帶來的影響。對於ddl操作不做複製,過實時讀取hlog中的entry來解析變更的資料然後傳送到從集群中去。2 distcp,表資料檔案的copy ...