Hbase常用可靠的數據遷移方案

常用的HBASE數據遷移目前的方案有非常多種,本文主要介紹兩種一種爲Hadoop手動數據遷移,另一種爲Snapshot數據遷移

原理不多介紹,直接實戰

一、Hadoop層手動數據遷移

需要注意:

1.Hadoop/hbase版本也要注意是否一致,如果版本不一致,最終load表時會報錯

2.遷移實時寫的表,最好是停止集羣對錶的寫入,在以下方式需要遷移的表爲Test

步驟說明:將需要遷移的數據表傳輸到臨時目錄,再copyFromLocal到hdfs修復元數據

第一步:新建個臨時文件夾 /opt/hbaseDataTest/Test 

第二步:在需要遷移的集羣.hadoop/bin目錄下 執行  

./hadoop fs -copyToLocal /hbase/data/default/Test /opt/hbaseDataTest/Test

第三步:在目標的集羣.hadoop/bin目錄下 執行

./hadoop fs -copyFromLocal /opt/hbaseDataTest/Test /hbase/data/default/Test

第四步:在hbase/bin 執行

./hbase hbck -fixMeta  修復meta表數據

第五步: 在hbase/bin 執行

./hbase hbck -fixAssignments 重新分配數據到各個RegionServer

第六步:檢查表數據是否OK

 

二. Snapshot數據遷移方式

 HBase快照(snapshot)顧名思義就是在某個時刻對某個HBase表的數據做了快速備份,就像拍照一下,讓數據停留在那個時刻不再變動,後面用來做數據的恢復或者遷移。HBase在0.94版本開始提供了快照功能,0.95版本以後默認開啓快照功能。

 HBase的snapshot其實就是一組metadata信息的集合(文件列表),通過這些metadata信息的集合,就能將表的數據回滾到snapshot那個時刻的數據。

 簡單概括HBase快照的使用場景如下:

 1.HBase表的定期快速備份

 2.升級前的HBase數據備份

 3.集羣間的數據遷移

 4.構建測試環境數據

 5.做數據恢復

遷移步驟

第一步:遷移snapshot

 hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot \

    -snapshot snapshot_src_table \

    -copy-from hdfs://src-hbase-root-dir/hbase \

    -copy-to hdfs://dst-hbase-root-dir/hbase \

    -mappers 20 \

    -bandwidth 1024

第二步:恢復snapshot  

命令 :restore_snapshot ‘snapshotName’

備註:需要對錶進行過disable才能進行restore_snapshot的操作,如果這個還在寫入數據,需要採用第三步bulkload的方式導入

第三步:將snapshot使用bulkload的方式導入

hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles \

-Dhbase.mapreduce.bulkload.max.hfiles.perRegion.perFamily=1024 \

hdfs://dst-hbase-root-dir/hbase/archive/datapath/tablename/filename tablename

備註:這種方式需要將所有的文件進行遍歷並全部通過bulkload導入,上面的只是一個文件的導入,這種方式不需要disable表。

其他snapshot操作

1.創建snapshot : snapshot 'tableName', ‘snapshotName'

2.查看snapshot :  list_snapshots

3.查找以alrm開頭的snapshot : list_snapshots 'alrm.*'

4.刪除snapshot: delete_snapshot 'snapshotName'

三、總結

本文介紹兩種常用HBase數據遷移方案,總結起來:

Hadoop手動數據遷移: 比較簡單坑比較少 ,比較大數據量效率可能比較低
Snapshot: 比較常用 , 應用靈活,採用快照技術,效率比較高

具體場景還是具體選擇,想了解更多信息可以關注一下微信公衆號,回覆1024可以領取大數據學習資料,每日更新大數據學習文章。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章