Welcome 微信登录

首页 / 数据库 / MySQL / HBase 增量备份和还原工具

HBase自带的export/import机制可以实现Backup Restore功能。而且可以实现增量备份。 下面设增量备份的python脚本 在这个脚本中,每天做增量备份,每个月15日做全备份。
  1. import time   
  2. import datetime   
  3. from datetime import date   
  4. import sys   
  5. import os   
  6.   
  7. tablename=sys.argv[1]   
  8. backupDst=sys.argv[2]   
  9. today=date.today()   
  10. if today.day == 15:    //every month, we do a full backup   
  11.         backupSubFolder=backupDst+today.isoformat()+"-full"  
  12.         cmd="hbase org.apache.Hadoop.hbase.mapreduce.Export %s %s"%(tablename,backupSubFolder)   
  13. else:   
  14.   
  15.         yesterday=datetime.date.today()- datetime.timedelta(days=1)   
  16.         todayTimeStamp=time.mktime(today.timetuple())   
  17.         yesTimeStamp=time.mktime(yesterday.timetuple())   
  18.         backupSubFolder=backupDst+today.isoformat()   
  19.         cmd="hbase org.apache.hadoop.hbase.mapreduce.Export %s %s %s"%(tablename,backupSubFolder,str(int(todayTimeStamp)*1000)   
  20.   
  21. print cmd   
  22.   
  23. 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里面,就可以实现每天定时备份了。 HBase的安装配置HBase Java客户端编程相关资讯      Hbase 
  • HBase 参考文档翻译之 Getting   (08月15日)
  • HBase应用开发回顾与总结系列  (01月10日)
  • Apache HBase 2015年发展回顾与未  (01月04日)
  • 为啥HBase需要搭建SQL引擎层  (02月19日)
  • HBase表数据分页处理  (01月10日)
  • Hbase VS Oracle  (11/21/2015 20:22:40)
本文评论 查看全部评论 (0)
表情: 姓名: 字数