HBase 增量备份和还原工具
HBase自带的export/import机制可以实现Backup Restore功能。而且可以实现增量备份。 下面设增量备份的python脚本 在这个脚本中,每天做增量备份,每个月15日做全备份。
import timeimport datetimefrom datetime import dateimport sysimport ostablename=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 cmdos.system(cmd)
hbase org.apache.hadoop.hbase.mapreduce.Import tablename restorefolder
export HADOOP_CLASSPATH="/usr/lib/hadoop-hbase/hbaseXXX.jar:/usr/lib/hadoop-hbase/lib/zookeeperXXX.jar:/etc/hadoop-hbase/conf"