使用Azcopy在Azure上进行HBase的冷热备份还原
场景
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
时间较长。。。。。
修复后,数据可以查询了。