HBase 增量备份和还原工具

日期: 2011-09-12 作者:John_Yang 来源:TechTarget中国 英文

  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

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐