当前位置:首页 > 开发 > 互联网 > 正文

HBase备份与还原

发表于: 2012-09-18   作者:chenchao051   来源:转载   浏览次数:
摘要: 转载两篇相关文章: 第一篇、http://blog.nosqlfan.com/html/3014.html  HBase 增量备份和还原工具 HBase自带的export/import机制可以实现Backup Restore功能。而且可以实现增量备份。下面设增量备份的python脚本。 在这个脚本中,每天做增量备份,每个月15日做全备份。   import time

转载两篇相关文章:

第一篇、http://blog.nosqlfan.com/html/3014.html 

HBase 增量备份和还原工具

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的路径.

 

把这个加到crontab里面,就可以实现每天定时备份了。

 

--------------------------------------------------我是分割线----------------------------------------------------------- 

 

 第二篇:http://koven2049.iteye.com/blog/1162904

hbase提供了导出表的方案,将指定的表导出到HDFS或本地,这样方便了备份或数据转移。 

最快的方式是通过mapreduce来完成这件事,需要在hbase的conf中添加mapred-site.xml:

<property>   
    <name>mapred.job.tracker</name>   
    <value>192.168.0.1:9001</value>   
</property>   
<property>   
    <name>hadoop.tmp.dir</name>   
    <value>/tmp/hadoop-${user.name}</value>   
</property> 

  

    【注意:不加也可以运行,加了搞不好还会出错】

    然后执行:

1.hbase org.apache.hadoop.hbase.mapreduce.Export backup_table hdfs://192.168.0.1:9000/user/test/backup_table  

 

数据被写到了相应的目录,一个region一个文件。默认为sequencefile。当然还可以选择对输出进行压缩等。 
要将输出的数据导入某个hbase的表,需执行以下命令:

hbase org.apache.hadoop.hbase.mapreduce.Import backup_table hdfs://192.168.0.1:9000/user/test/backup_table 

此时再看对应的表,己经有数据了。

 

HBase备份与还原

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
sharepoint 2010备份和还原 sharepoint 2010中只有两种备份和还原的方法: 第一种: 使用命令行Stsadm
使用mysqldump命令备份 mysqldump 命令可以将数据库中的数据备份成一个文本文件。表的结构和表中的
**本文针对的是启明星系统的数据库备份与还原,这同样适合其他数据库。 数据库自动备份工具(发布时
创建数据库与建表等操作请参考这里(SqlServer 创建数据库 使用多个文件组和物理磁盘 ) 下图是备份前
一、SQL数据库的备份: 1、依次打开 开始菜单 → 程序 → Microsoft SQL Server 2008 → SQL Server
地址分为物理和逻辑,实际指的是,备份到哪里的一个地方的指定,这个地方的地址有逻辑地址和物理地
一、SQL数据库的备份: 1、依次打开 开始菜单 → 程序 → Microsoft SQL Server 2008 → SQL Server
数据库备份 恢复数据库: 关键字:Alter Database 被恢复的数据库名 Set Offline with Rollback imm
一、系统 [root@barman ~]# cat /etc/issue CentOS release 6.5 (Final) Kernel \r on an \m [root@
信息化时代的不断发展,电脑的不断普及,对电脑系统安全的要求越来越高,这也伴随着一批系统备份还
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号