hbase 备份及恢复

[b]1, hbase自带的备份恢复工具[/b]
hbase org.apache.hadoop.hbase.mapreduce.Export 'table1' /home/fred/table1
hbase org.apache.hadoop.hbase.mapreduce.Import 'table1' /home/fred/table1
导入时必须先创建表结构。

[url]http://www.iteye.com/topic/1114721[/url]
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)



[b]2, 把某个表(table1)从集群1迁移到集群2(两个集群互相看不见),步骤如下[/b]
1、拷贝集群1的表文件到本地磁盘,拷贝之前要停掉集群1的hbase服务,否则会丢失数据
hadoop fs -copyToLocal /hbase/table1 /home/fred/hb_bak/table1

2、对于文件操作,很简单吧,随便你怎么去拷贝来拷贝去
3、如果集群2中也有对应的表文件,那么删除掉,然后拷贝
hadoop fs -rmr /hbase/table1
hadoop fs -copyFromLocal /home/fred/hb_bak/table1 /hbase/table1
4、到hbase的bin目录下,重置该表在.META.表中的分区信息
hbase org.jruby.Main add_table.rb /hbase/table1
5、重启hbase使表的重置信息生效,切忌强制停掉hbase服务,否侧损坏数据

另外:
1、如果表的数据量过大呢? 那么按照该表在HDFS中的文件夹数据,分批拷贝。
2、如果两个集群可以互相通信呢?那么更爽了,直接使用distcp对拷,是并行的。

[b]3, HBase Backup Options[/b]
[url]http://hbase.info/tag/distcp[/url]
如果你打算部署HBase,那么你一定要考虑如何备份的问题,下面是作者列举的他所知道的一些备份方式,如果有遗漏的,欢迎补充。
[u]Export[/u]
HBase提供了export的MapReduce Job(org.apache.hadoop.hbase.mapreduce.Export)可以将表导出为HDFS的顺序文件(SequenceFile),这是由HBASE-1684贡献的工具。此工具一次只能操作一张表,导出的顺序文件可以通过Import工具导入HBase。
[u]Copy Table[/u]
在两个HBase集群之间复制数据,也可以通过Copy Table工具,这也是MapReduce实现的,一次操作一张表。
[u]Distcp[/u]
你也可以利用HDFS的Distcp工具将整个/hbase复制到另外一个HDFS集群,但如果这可能导致复制的数据不一致,所以尽量不要这么做,除非先将源集群停止服务,参考: http://search-hadoop.com/m/wkMgSjVLDb
[u]Backup from Mozilla[/u]
由于Dictcp做集群复制存在数据不一致的问题,Mozilla的开发人员开发了一个Backup工具,具体情况请参考他们的这篇Migrating HBase in the Trenches。
[u]Cluster Replication[/u]
HBase从0.89版本开始引入集群复制功能,所以我们也可以利用此功能将数据备份到另一个集群。复制的目标集群不需要和源集群同配置,因此可以将数据通过复制备份到一个较低成本的集群中。
[u]Table Snapshot[/u]
在著名的HBase-50中就提出了Snapshot的问题,尽管在GSoC 2010期间做了大量的工作,但不知由于什么原因,一直没有合并进HBase的主流分支。Jira上已经有一个Patch,但已经较长时间无进展了。
[u]HDFS Replication[/u]
HDFS中的数据是有多份拷贝的,你也可以把这多份的拷贝当作一种备份,它虽然不能防止数据损坏,但能容忍部分硬件故障。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值