转自 http://www.importnew.com/4966.html

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和快照,请参考文档。

原文链接:  Cloudera  翻译:  ImportNew.com  -  陈 晨
译文链接:  http://www.importnew.com/4966.html
[  转载请保留原文出处、译者和译文链接。 ]

Apache HBase快照介绍相关推荐

  1. Apache HBase 快照(Snapshots) 介绍

    Apache HBase 快照(Snapshots) 介绍 本文将介绍 HBase 快照功能,因为 HBase 的底层存储是基于 HDFS 的,所以 HBase 的快照功能也是依赖 HDFS 快照的知 ...

  2. Welcome to Apache HBase 介绍一

    官网:http://hbase.apache.org/ 一:HBase的介绍 HBase认识 Hadoop database, a distributed, scalable, big data st ...

  3. 【翻译】Apache Hbase新特性--MOB支持(一)

    2019独角兽企业重金招聘Python工程师标准>>> 原文链接:http://blog.cloudera.com/blog/2015/06/inside-apache-hbases ...

  4. HBase—基础介绍

    原文作者:Java3 原文地址:我终于看懂了HBase,太不容易了... 目录 摘要: 前言 一.介绍HBase 二.为什么要用HBase 三.入门HBase 3.1 HBase的数据模型 3.2 H ...

  5. apache karaf_Apache Karaf遇到Apache HBase

    apache karaf 介绍 Apache HBase是一个以Google Bigtable为蓝本的开源,分布式,版本化,面向列的商店. 如果您是普通读者,那么您可能已经知道Apache Karaf ...

  6. Apache Karaf遇到Apache HBase

    介绍 Apache HBase是模仿Google Bigtable的开源,分布式,版本化,面向列的商店. 如果您是普通读者,那么您可能已经知道Apache Karaf是什么,但是对于那些不是的读者:A ...

  7. 【zookeeper】Apache curator优点介绍

    文章目录 1. 简介 2. 项目组件 2.1 版本 2.2 项目组件 2.3 Maven依赖 3. 案例及功能说明 3.1 创建会话 3.1.1 重试策略 3.1.2 创建节点 3.1.3 删除节点 ...

  8. Apache HBase【从无到有从有到无】【AH8】RegionServer调整大小的经验法则

    目录 RegionServer调整大小的经验法则 1.关于列族的数量 1.1.ColumnFamilies的基数 2.Rowkey设计 2.1.热点发现(Hotspotting) 2.2.单调增加行键 ...

  9. Apache HBase MTTR 优化实践:减少恢复时长

    摘要:HBase是Hadoop Database的简称,是建立在Hadoop文件系统之上的分布式面向列的数据库,它具有高可靠.高性能.面向列和可伸缩的特性,提供快速随机访问海量数据能力. 本文分享自华 ...

最新文章

  1. 聚类热图怎么按自己的意愿调整分支的顺序?
  2. 如何在浏览器端爬取信息(只是配置的部分)----设置环境
  3. Android 沙箱开源,Android Sandbox(沙箱)开源工具介绍
  4. 全国计算机等级考试题库二级C操作题100套(第89套)
  5. 每天扫扫扫,二维码会被我们扫完吗?
  6. java处理高并发高负载类网站问题
  7. 【专栏必读】王道考研408数据结构万字笔记(有了它不需要你再做笔记了):各章节内容概述导航和思维导图
  8. android camera2 qcom,lineage编译环境里,编译QCamera2的技术总结
  9. JavaScript中的shift()、unshift()和pop()函数
  10. 开课吧课堂:深入了解学习C++的意义与就业方向
  11. credential for git
  12. java writedouble_java-将double转换为32位表示形式(以及相反的...
  13. matlab幻方变换_Matlab入门1-幻方矩阵
  14. excel 文件过大 瘦身
  15. 【精华帖】PS拼接图片最简单教程
  16. python学习笔记1-环境安装
  17. ubuntu18.04鼠标正常使用,而键盘失灵
  18. guess在Java中用法_猜一猜,guess有哪些用法?
  19. Go实现随机、轮训、权重、哈希负载均衡
  20. 4rx4 服务器内存2rx4_【P00930-B21 P06190-001 64GB 2Rx4 PC4-2933Y-R 服务器内存】价格_厂家 - 中国供应商...

热门文章

  1. 将DataTable中的数据导入到数据库中
  2. Echarts的提示(Tooltip)显示额外内容
  3. webToImage (网页转图片)模块试用分享
  4. 前端差异化项目合并打包
  5. 开源大数据周刊-第44期
  6. 了解区块链,从挖矿开始
  7. [RHEL] RHEL7.0 下 Postfix + Dovecot 实现邮件发送
  8. BZOJ 2748: [HAOI2012]音量调节【二维dp,枚举】
  9. phpstudy易犯的错误
  10. 普中开发仪 HC6800EM3-v22光盘资料