首页 > 技术文章 > 使用Azcopy在Azure上进行HBase的冷热备份还原

xianhan 2017-08-18 19:12 原文

场景

 

HBase表TaskLog中有20.55G数据(20553078551Byte),目前存放在热存储中,现在要移至冷热储,并进行还原。

HBase目录:hbase/data/default

冷目录:Cold_Tasklog/TaskLog_20170817

其它:冷热两个存储账号的AccountName、AccountKey、ContainerName都已经准备好。

 

备份还原过程

 

1、  在Hot上

a)         disable ‘TaskLog’:执行hbase命令

b)         创建Container:backup

c)         将’TaskLog’目录下的文件复制到backup/ TaskLog_20170817下:Azcopy命令

AzCopy /Source:https://hotaccountname.blob.core.chinacloudapi.cn/hdptestjn/hbase/data/default/TaskLog /Dest:https://coldaccountname.blob.core.chinacloudapi.cn/backup/TaskLog_20170817 /SourceKey:hotaccountkey /DestKey:coldaccountkey /S

操作结束 后,TaskLog_20170817目录大小为20553078551Byte,同源文件

d)         将’TaskLog’文件复制到backup/下,进行备份(防止操作不成功):Azcopy命令

AzCopy /Source:https://hotaccountname.blob.core.chinacloudapi.cn/hdptestjn/hbase/data/default /Dest:https://hotaccountname.blob.core.chinacloudapi.cn/backup /SourceKey:hotaccountkey /DestKey:hotaccountkey /Pattern:TaskLog

 

2、  将Hot存储上的TaskLog目录,迁移到Cold存储上:Azcopy命令

AzCopy /Source:https://hotaccountname.blob.core.chinacloudapi.cn/hdptestjn/hbase/data/default/TaskLog /Dest:https://coldaccountname.blob.core.chinacloudapi.cn/hbasecold/Cold_Tasklog/TaskLog_20170817 /SourceKey:hotaccountkey /DestKey:coldaccountkey /S

 

3、  在Hot清空TaskLog:执行Hbase命令

Enable ‘TaskLog’

Truncate ‘TaskLog’

Disable ‘TaskLog’

此时数据清空,大小为0

 

4、  从Cold中还原:Azcopy命令

AzCopy /Source:https://coldaccountname.blob.core.chinacloudapi.cn/hbasecold/Cold_Tasklog/TaskLog_20170817 /Dest:https://hotaccountname.blob.core.chinacloudapi.cn/hdptestjn/hbase/data/default/TaskLog /SourceKey:coldaccountkey /DestKey:hotaccountkey /S

还原后的TaskLog数据量统计:20553078551Byte,同原始大小

 

5、  在Hot,启用TaskLog,检查数据:Hbase命令

Enable ‘TaskLog’

Scan ‘TaskLog’ ----0行

修复元数据:

hbase hbck -repair 'TaskLog'  -ignorePreCheckPermission  -fixMeta

时间较长。。。。。

修复后,数据可以查询了。

 

推荐阅读