`
乡里伢崽
  • 浏览: 112030 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

hbase 快照

 
阅读更多
Apache HBase快照介绍
分享到: 6


本文由 ImportNew - 陈 晨 翻译自 Cloudera。欢迎加入翻译小组。转载请参见文章末尾的要求。

CDH是Cloudera的完全开源分布式Apache Hadoop及相关项目(包括Apache HBase)。CDH的当前版本(4.2)引入的一个HBase新特性最近加入到了主干中,允许用户对指定表进行快照。

在CDH4.2之前,唯一能够备份或克隆表的方法就是使用复制/导出表或者在关闭表之后拷贝HDFS中所有的hfile。复制/导出是通过一系列工具调用MapReduce来扫描并复制表,这样会对域服务器的效率有直接的影响。关闭表会停止所有的读写操作,实际环境中往往无法接受。

相比之下HBase快照允许管理员不拷贝数据直接克隆一张表,这对域服务器产生的影响最小。将快照导出至其他集群不会直接影响到任何域服务器;导出只是带有一些额外逻辑的群间数据同步。

下面是一些HBase快照的使用场景:

    从用户/应用异常中还原
    从一个已知的安全状态恢复/还原
    查看之前的快照并有选择性的合并不同写入产品环境
    当主应用程序升级或改版时保存快照。
    在指定时间审查和/或报告数据。
    按照规定捕获月度数据
    生成日终/月末/季末报告
    应用测试
    通过快照模拟生产环境下结构或应用发生的变化,测试完成即可丢弃。例如:生成快照,利用快照中内容构建新表(原有结构+数据)并且修改新表的结构,添加或删除列之类。(原始表、快照和新表保持相互独立)
    减少工作压力
    生成快照,导入到其他集群,然后运行MapReduce jobs。因为导出的快照是HDFS级别,所以不会像复制表那样降低HBase主集群的效率。

快照是什么?

快照就是一份元信息的合集,允许管理员恢复到表的先前状态。快照不是表的复制而是一个文件名称列表,因而不会复制数据。完全快照恢复是指恢复到之前的“表结构”以及当时的数据,快照之后发生的数据不会恢复。
操作

    生成快照:本操作尝试对指定表生成快照。如果集群在执行数据均衡、分隔或合并等操作时,可能会引起操作失败。
    克隆快照:本操作使用与指定快照相同的结构数据构建一张新表。操作结果会生成一张有完整功能的表,对该表的任意修改不会对原表或快照产生影响。
    还原快照:本操作将表结构和数据恢复到生成快照时的状态。(注意:本操作会舍弃快照生成后任何改变)。
    删除快照:本操作将系统中的快照删除,释放未共享的磁盘空间,而且不会影响其他克隆或快照。
    导出快照:本操作将快照数据和元数据复制到其他集群。操作只会涉及HDFS,不会与Master或域服务器产生任何联系,因此HBase集群可以关闭。

零复制快照,恢复,克隆

快照和复制/导出表之间的主要差异是快照操作只写入元数据,不涉及海量数据。

HBase的主要设计原则之一就是一旦文件写入就不再修改。文件不可变意味着快照只需保持对快照产生时存在的文件追踪,并且在压缩时负责提示系统该文件不应删除而是应当归档保存。

同样的原则也适用于克隆和恢复操作。因为文件是不变的,新建一个表只需要通过快照“链接”到文件引用即可。

导出快照是唯一需要复制数据的操作,因为其他集群没有数据文件。
导出快照 vs 复制/导出表

导出快照与复制/导出表除了更好地保持一致性外,主要的不同在于导出快照是在HDFS的层面操作的。这意味这Master和域服务器与操作无关。因此不需要为不必要的数据创建缓存空间,也不会有扫描过程因为大量对象创建引起的GC暂停。对于HBase来说主要性能影响就是DataNode额外的网络和磁盘负载。
HBase命令:快照操作

通过检查hbase-site.xml中的hbase.snapshot.enabled是否设置为true确认打开了快照许可。获取指定表的快照使用snapshot命令(不产生文件复制)
1

hbase> snapshot ‘tableName’, ‘snapshotName’

列出所有的快照,使用 list_snapshot 命令。会展示出快照名称,源表,以及创建日期和时间
1
2
3

hbase> list_snapshots
SNAPSHOT               TABLE + CREATION TIME
TestSnapshot          TestTable (Mon Feb 25 21:13:49 +0000 2013)

删除快照使用 deleted_snapshot 命令。删除快照不会影响到克隆表或者之后生成的快照。
1

hbase> delete_snapshot ‘snapshotName’

使用clone_snapshot命令从指定的快照生成新表(克隆)。由于不会产生数据复制,所以最终用到的数据不会是之前的两倍。
1

hbase> clone_snapshot ‘snapshotName’, ‘newTableName’

使用restore_snapshot命令将指定快照内容替换当前表结构/数据。
1

hbase> restore_snapshot ‘snapshotName’

使用ExportSnapshot工具将现有快照导出至其他集群。导出工具不会影响到域服务器负载,只是工作在HDFS层面所以需要指定HDFS路径(其他集群的hbase根目录)
1
2
3

hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot

SnapshotName -copy-to hdfs:///srv2:8082/hbase
目前的限制

快照需要依赖一些条件,目前有一些工具还没有很好的整合新特性:

    合并引用快照的集群会引起快照和克隆表的数据丢失。
    当复制开启时还原一个表,会造成两个集群不同步。表不会在复制集上还原。

结论

当前快照包含了所有的基础功能特性,但是还是有很多工作要做,包括监测、页面UI集成、磁盘空间优化等等。
分享到:
评论

相关推荐

    hbase基于快照的数据迁移

    1. **开启HBase快照功能**: - 登录Ambari管理界面,检查`hbase-site.xml`中的`hbase.snapshot.enabled`属性是否被设置为`true`。若未设置,则需要添加或修改该配置项。 - 此步骤确保快照功能已启用。 2. **新建...

    Hbase资源整理集合

    分布式数据库HBase快照的设计与实现.pdf 【HBase】Distribute Strage f Large Sale Multiimensinal - Center fr .pdf 互联网HBase杂谈.pdf 【HBase】Avane HBase Shema Design - Berlin Buzzwrs .pdf HBase ...

    snapshot-s3-util:用于将HBase快照导出到S3和从S3导出的工具

    建造mvn clean package跑步创建快照并立即导出到S3 hadoop jar target/snapshot-s3-util-1.0.0.jar ... BackupUtil [-a] -b <arg> -c | -e | -i | -x [-d ] -k <arg> [-l ] [-m ] [-n ] [-p ] -s <arg> [-t <arg>

    hbase运维手册

    #### 六、HBase快照(Snapshot) **1.6 HBase快照(Snapshot)** ##### 1.6.1 配置 快照的配置包括指定要创建快照的表、快照的名称等。 ##### 1.6.2 生成快照 生成快照是一种快速备份HBase表的方法,不会导致服务...

    hbase备份脚本,hbase备份脚本

    hbase备份脚本

    hbase-shell批量命令执行脚本的方法

    批量执行hbase shell 命令 #!/bin/bash source /etc/profile exec $HBASE_HOME/bin/hbase shell <<EOF truncate 'tracker_total_apk_fact_zyt' major_compact('t_abc') disable 't_abc' drop 't_abc' create...

    hbase备份和数据恢复

    - HBase的快照功能:HBase支持在线快照,通过创建快照可以在不锁定表的情况下捕获数据的即时状态,快照可以用于快速恢复。 - HLog备份:HBase的日志文件(HLog)记录了所有写入操作,定期备份HLog可以防止数据丢失...

    hbase和hadoop数据块损坏处理

    Snapshot 是 HBase 的快照功能,可以快速创建快照,然后将快照恢复到 HBase 表中。 HBase 备份与恢复的命令包括: * hbase org.apache.hadoop.hbase.mapreduce.Export <tablename> <outputdir>:将 HBase 表内容...

    hbase备份恢复实例

    本文将详细介绍HBase中的几种备份恢复方法,包括快照(Snapshots)、复制(Replication)、导出/导入(Export/Import)以及拷贝表(CopyTable)等,并通过具体示例加以说明。 #### 二、HBase备份恢复概述 HBase提供了多种...

    hbase-2.2.3-bin.tar.gz

    HBase支持快照功能,可以定期创建快照以备不时之需。 5. **安全设置**:根据业务需求,配置合适的安全策略,例如启用SSL通信,设置访问控制等。 最后,提供的"相关配置及使用说明"将帮助你更好地理解和使用HBase ...

    hbase1.0.3_part2

    每个读操作看到的是某个特定时间点的快照,而写操作则会生成新的版本。 10. **HBase的复制功能**:HBase提供了集群间的复制功能,可以创建多个RegionServer的副本,提高系统的可用性和容错性。当主RegionServer失效...

    yl-hbase-rep:hbaseplicationsnapshot实现机制,源码解析,以及复制对等体的实现-源码解析

    hbase快照,复制实现机制,源码解析 复制对等方的实现代码 批量加载代码示例 1个快照/复制实现机制 快照实现机制,快照文件生成过程,请参考快照内容 复制实现机制,源码解析,请参考 2复制对等体的实现 参考lily二...

    Hbase 的shell基本操作

    HBase是Apache的一个开源非关系型分布式数据库(NoSQL),它是建立在Hadoop文件系统(HDFS)之上,适用于需要快速读/写访问大量随机数据的场景。HBase采用了Google的Bigtable数据模型,底层物理存储采用了列存储的...

    一款强大的HBase表管理系统.zip

    一款强大的HBase表管理系统,目前系统集成的功能有,命名空间管理,表管理,列簇管理,标签机制,快照管理,以及一些常见的统计指标展示等,另外,系统还内置了HBaseSQL的功能,欢迎大家下载。 一款强大的HBase表...

    Learning HBase(中文版)

    8. **备份与恢复**:讲解HBase的数据备份策略,包括快照、导出导入等方法,以及灾难恢复方案。 9. **案例研究**:提供真实应用场景,如互联网日志分析、物联网数据存储等,展示HBase的实际运用。 10. **HBase与...

    hbase数据库

    5. 多版本支持:HBase存储每个数据行的多个版本,允许在不同的时间点进行数据快照。 6. 分布式多层次映射表结构:HBase的数据模型支持分布式存储,能够水平扩展,并且提供容错特性。 HBase的历史和发展: 1. 2006年...

    OpenTSDB 2

    该公司的OpenTSDB集群包含35台服务器,每秒写入10万条数据,存储25TB的原始数据,并且采用5天的HBase快照窗口来减少存储空间的需求。 - **Yahoo**:用于监控应用性能和统计信息,部署了15台服务器,每秒写入28万条...

    企业中应用HBase

    本文将基于提供的文件信息,深入探讨企业在应用HBase时的关键知识点,包括但不限于增强跨版本兼容性、统一RPC引擎、灾难恢复策略、表级快照功能以及RegionServer组管理等。 #### 二、增强跨版本兼容性 - **背景与...

    HBase权威指南_Hadoop权威指南_pdf_

    9. **备份与恢复**:HBase提供了快照功能,可以定期创建数据快照,用于灾难恢复或数据迁移。 10. **监控与运维**:管理员需要监控HBase的性能和健康状况,包括Region分布、内存使用、延迟等指标,以确保系统的稳定...

Global site tag (gtag.js) - Google Analytics