HBase自带的export/import机制可以实现Backup Restore功能。而且可以实现增量备份。
下面设增量备份的python脚本
在这个脚本中,每天做增量备份,每个月15日做全备份。
import time import datetime from datetime import date import sys import os tablename=sys.argv[1] backupDst=sys.argv[2] today=date.today() if today.day == 15: //every month, we do a full backup backupSubFolder=backupDst+today.isoformat()+”-full” cmd=”hbase org.apache.hadoop.hbase.mapreduce.Export %s %s”%(tablename,backupSubFolder) else: yesterday=datetime.date.today()- datetime.timedelta(days=1) todayTimeStamp=time.mktime(today.timetuple()) yesTimeStamp=time.mktime(yesterday.timetuple()) backupSubFolder=backupDst+today.isoformat() cmd=”hbase org.apache.hadoop.hbase.mapreduce.Export %s %s %s”%(tablename,backupSubFolder,str(int(todayTimeStamp)*1000) print cmd os.system(cmd) |
而Restore机制就更加简单
hbase org.apache.hadoop.hbase.mapreduce.Import tablename restorefolder |
要注意的是,做Restore时候,原始的表必须是创建好的。所以如果表本身被损坏,需要重新创建一个新的空表,再做Restore。
还有,必须在Hadoop-env.sh中配置好hbase和Zookeeper的路径,加上这样的语句
export HADOOP_CLASSPATH=”/usr/lib/hadoop-hbase/hbaseXXX.jar:/usr/lib/hadoop-hbase/lib/zookeeperXXX.jar:/etc/hadoop-hbase/conf” |
把这个加到crontab里面,就可以实现每天定时备份了。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
Cloudera-Hortonworks合并或将减少Hadoop用户的选择
近日大数据领域两家顶级供应商达成交易协议,这可能会影响Hadoop和其他开源数据处理框架,并使大数据用户的技术 […]
-
Azure数据湖分析从U-SQL中获得提升
大数据的发展已经让许多精通SQL的数据专业人员不知所措。微软的U-SQL编程语言试图让这些人回归数据查询游戏。
-
进入机器学习时代,数据库何去何从?
Vertica之前就已经能够对Hadoop数据进行访问,但Vertica8.0分析引擎则能够与Hadoop数据适当协作,如此一来就能减少数据迁移。
-
NoSQL——未来数据库家族的一员
NoSQL是对数据库由内而外的全方位改造,从而创造出一个高容量、高速度和高可变性的架构。然而,NoSQL供应商在可变性部分却正在遭遇失败。