浏览 5914 次
锁定老帖子 主题:HBase 增量备份和还原工具
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-09-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里面,就可以实现每天定时备份了。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-09-27
简明扼要。。不错,收下了。。
|
|
返回顶楼 | |