HBase 增量备份

php中文网
发布: 2016-06-07 17:27:20
原创
1360人浏览过

文中可能涉及到的API: Hadoop/HDFS:http://hadoop.apache.org/common/docs/current/api/ HBase: http://hbase.apache.org/apido

文中可能涉及到的api:

Hadoop/HDFS:

HBase: ?overview-summary.html

Begin!

一、概述

使用了HBase提供的Export与Import工具。

Export:

Import:

看到这两个类所在目录我们了解到,Export与Import的实质是MapReduce任务。

关于这两个工具API中写的很清楚:

Export an HBase table. Writes content to sequence files up in HDFS. Use Import to read it back in again.

将HBase的表导出为HDFS的sequence files。

Export如其名,只是导出工具,如何完成备份功能呢?

 

二、功能实验

测试过程涉及很多数据,这里仅提供重要结论:

1、Export是以表为单位导出数据的,若想完成整库的备份需要执行n遍。

2、Export在shell中的调用方式类似如下格式:

./hbase org.apache.hadoop.hbase.mapreduce.Export 表名 备份路径 (版本号) (起始时间戳) (结束时间戳)

Export [-D ]* [ [ []]]

括号内为可选项,例如

./hbase org.apache.hadoop.hbase.mapreduce.Export 'contentTbl' /home/codeevoship/contentBackup20120920 1 123456789

备份contentTbl这张表到/home/codeevoship/contentBackup20120920目录下(最后一级目录必须由Export自己创建),,版本号为1,备份记录从123456789这个时间戳开始到当前时间内所有的执行过put操作的记录。

移动端UI&微信UI YDUI Touch
移动端UI&微信UI YDUI Touch

YDUI Touch专为移动端打造,在技术实现、交互设计上兼容主流移动设备,保证代码轻、性能高;使用 Flexbox 技术,灵活自如地对齐、收缩、扩展元素,轻松搞定移动页面布局;用 rem 实现强大的屏幕适配布局,等比例适配所有屏幕;自定义Javascript组件、Less文件、Less变量,定制一份属于自己的YDUI。

移动端UI&微信UI YDUI Touch 81
查看详情 移动端UI&微信UI YDUI Touch

注意:为什么是所有put操作记录?因为在备份时是扫描所有表中所有时间戳大于等于123456789这个值的记录并导出。如果是delete操作,则表中这条记录已经删除,扫描时也无法获取这条记录信息。

3、当不指定时间戳时,备份的就是当前完整表中的数据。

 

三、实施细节

1、如何在增量备份时体现出对数据的删除操作?

由于Export按时间戳备份只能反映出Put过的表项,若我在一个备份(增量包)时间区间内删除了某条已有记录,当数据库回档时,这条被删除的记录又会出现在我的表中。

因此,我将所有的删除操作替换为Put操作:

a、给每行数据添加了一个无效标志位,在删除记录时使用Put给该标志位写为1。

b、在单条查询时,根据rowKey取出记录后会根据这个标志位判断这条记录是否已被“删除”,以此决定是否返回这条记录。在多条查询时(scan),使用列值过滤器,过滤出所有这个标志位不为1的记录。(可参见我之前的《HBase 条件查询》  )

2、在备份过程中新增的数据是否会影响备份内容的准确性?

可以指定小于等于当前时刻的结束时间戳,以便将需要备份的数据范围明确。

 

3、如何备份到其他机器?

a、Export支持提供地址的备份。最简单的方法,直接把远端存储挂载到本地,然后使用本地路径。

b、使用API调用时,Path如果使用file:///home/codeevoship/backup,代表使用本地文件系统。若直接写为/home/codeevoship 代表使用HDFS层的路径。在使用Shell调用时则相反。

4、如何使用API调用?

通过MapReduce的Job:

先通过Export类提供的方法创建Job实例,再调用Job的()或(boolean verbose);异步与同步。

 

四、其他解决方案

1、HDFS层的HDFS Replication或DistCp

2、Cluster Replication

linux

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号