HBase跨集群遷移調(diào)研方案回顧
遷移目的
HBase跨集群平滑遷移
方案
方案一
雙寫:replication
歷史數(shù)據(jù):Snapshot——>exportSnapshot——>clone_snapshot——>copyTable
方案二
雙寫:replication
歷史數(shù)據(jù):Snapshot——>exportSnapshot——>bulkload
操作命令
snapshot
#制作snapshot
hbase> snapshot 'myTable', 'myTableSnapshot-122112'
#顯示所有snapshot
hbase> list_snapshots
#發(fā)送snapshot到其他集群
$ bin/hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot MySnapshot -copy-to hdfs://srv2:8082/hbase -mappers 16 -bandwidth 200
#在目標集群clone snapshot
hbase> clone_snapshot 'myTableSnapshot-122112', 'myNewTestTable'
#在目標機還原snapshot
hbase> disable 'myTable'
hbase> restore_snapshot 'myTableSnapshot-122112'
hbase> enable 'myTable'
#目標集群copy table
$ bin/hbase org.apache.hadoop.hbase.mapreduce.CopyTable --starttime=1265875194289 --endtime=1265878794289 --peer.adr=server1,server2,server3:2181:/hbase --families=myOldCf:myNewCf,cf2,cf3 TestTable
#目標機器執(zhí)行bulkload snapshot
bin/hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles <hdfs://storefileoutput> <tablename>
replication
#Add a new replication peer which serial flag is true
hbase> add_peer '1', CLUSTER_KEY => "server1.cie.com:2181:/hbase", SERIAL => true
#Set a replication peer’s serial flag to true(數(shù)據(jù)順序)
hbase> set_peer_serial '1', true
#驗證replication數(shù)據(jù)
$ HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase classpath` "${HADOOP_HOME}/bin/hadoop" jar "${HBASE_HOME}/hbase-mapreduce-VERSION.jar" verifyrep --starttime=<timestamp> --endtime=<timestamp> --families=<myFam> <ID> <tableName>
優(yōu)缺點
方案一:開啟replication叫倍,snapshot需要先clone到新表,然后再copyTable到舊表
缺點:restore_snapshot會覆蓋replication新數(shù)據(jù)段标;通過MR執(zhí)行,速度慢,不如bulkload執(zhí)行效率高
優(yōu)點:表級操作
方案二:開啟replication蛇更,snapshot通過bulkload到數(shù)據(jù)表,不會覆蓋新數(shù)據(jù)
優(yōu)點:導入數(shù)據(jù)數(shù)據(jù)速度非撑扇危快;在新版本中已經(jīng)支持整表bulkload方案(CDH-6.0及以上掌逛,hBase2.0)
缺點:舊版本不支持整表bulkload方案,需要代碼添加功能豆混;再整表bulkload時默認最大HFILE個數(shù)32动知,需要根據(jù)需要調(diào)整修改。參數(shù):
hbase.mapreduce.bulkload.max.hfiles.perRegion.perFamily
最終方案
目標
采用方案:方案二:
通過bulkload整表導入從集群導入的snapshot快照盒粮,完成數(shù)據(jù)遷移;
目標:平滑遷移丹皱,雙寫基礎上,盡可能簡潔操作摊崭,流程短,效率高呢簸;