转载两篇相关文章:
第一篇、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备份恢复的原理以及实践.pdf
hbase备份脚本
hbase备份和数据恢复,hbase与hive的互导,hbase和hdfs互导。
本文档举例测试了HBASE各种备份与恢复测试用例,包括表拷贝,快照,复制等
HBase 数据备份与恢复
Hbase容灾与备份,进阶篇
藏经阁-阿里云HBase备份恢复的原理以及实践-15.pdf
尚硅谷版本的视频笔记资源,留着自己备份 怕丢
HBase即Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在普通的PC Server上搭建起大规模结构化存储集群。 HBase是Google Bigtable的开源实现,类似Google Bigtable利用...
HBase入门与使用,可以了解如何使用HBase
本文档详尽的描述了 HBASE中的事务与锁等信息,是理解hbase事务与锁的好资料
在本地模式下,hbase只需要安装JDK就可以了。 若使用HDFS文件系统模式,除了JDK,还需要安装hadoop(HDFS是hadoop的旗舰级文件系统,是hadoop项目的核心子项目,安装hadoop会带有hdfs),本版本hbase依赖安装的hadoop...
可以对nosql数据库Hbase有个基础的了解和应用
2 HBase与关系数据的区别? 2 HBase与RDBMS的区别? 2 3. HBase的数据模式是怎么样的?即有哪些元素?如何存储?等 3 1). 数据模式 3 2). HBase的基本元素: 4 3) 数据模型有哪些操作? 4 4) 返回结果的排序...
java 利用 sping-data-hadoop HbaseTemplate 操作hbase find get execute 等方法 可以直接运行
NULL 博文链接:https://username2.iteye.com/blog/2106533
HBase配置文件与HBase doc文档
HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用HadoopMapReduce来...
搭建pinpoint需要的hbase初始化脚本hbase-create.hbase
Hadoop与HBase自学笔记 1、 安装jdk 2、 安装Cygwin以及相关服务 2.1 安装Cygwin 2.2 配置环境变量 2.3 安装sshd服务 2.4 启动sshd服务 2.5 配置ssh登录 3、安装hadoop 3.1 修改hadoop-env.sh 3.2 修改...