HBase是一个可以进行实时读和写操作的分布式NoSQL系统,建立在HDFS之上,是Hadoop生态圈中重要的一部分。在HBase中底层存储结构采用的LSM-tree的方式进行处理,为了保证HBase的数据可靠性和可用性,HBase采用了多种方式,包括Snapshot、Replication等多种方式,下面简单分析HBase中的这几种方法。

 1、Snapshot(快照)

快照是一些重要的元数据信息,这样系统管理员可以根据这些元数据信息有效的恢复到以前的状态。在系统运行过程中,有时需要恢复到以前的某个时候,保证以前的数据的可用性这时需要采用快照的方式保存以前的数据。在大规模高新能分布NoSQL系统中,为了保证系统性能,需要快速的进行系统表的快照的处理。HBase中的快照技术可以不用原始的保存原来的Table数据文件。HBase中的快照技术有如下几个作用:

  • 恢复程序以前的错误。在程序或者应用运行错误的情况下,可以恢复到系统运行以前的状态
  • 保存特定时间点的系统数据,可以用于生成系统特定时间点的报告
  • 进行离线工作,可以把生成的快照文件导出到别的Hbase集群中进行处理

上图是HBase的架构图。在HBase中,HBase管理的snapshot的技术包括在线快照和离线快照,整个HBase的快照技术过程类似与两阶段提交过程,如下所示

Note:在完成快照过程后,HBase集群会执行compact和split过程,这时原有的HFile文件会被删除,这是需要对于原有的HFile文件进行存档,所以在compact和split完成后需要对于原有的HFile文件进行archive。如下图所示

      2、Replication(集群复制技术)

       HBase集群的Replication技术是指复制一个HBase集群上的数据到另外一个HBase集群上去,它的工作原则就是在两个不同的HBase集群之间进行数据的复制。HBase的Replication技术主要用于多个数据中心之间,目标是进行容灾备份。在一个主HBase集群失效以后,从HBase集群可以接替原有的主HBase集群服务原有的HBase集群服务。HBase的集群复制模式包括三种:主-从(master-slave)、主-主(master-master)、循环(cyclic),如下图所示

                                    

主-主(master-master)模式                                                                                         循环(cyclic)模式

参考资料:

[1]   Apache HBase Replication Overview.     http://blog.cloudera.com/blog/2012/07/hbase-replication-overview-2/

[2]   Introduction to Apache HBase Snapshots.   http://blog.cloudera.com/blog/2013/03/introduction-to-apache-hbase-snapshots/

[3]  Introduction to Apache HBase Snapshots, Part 2: Deeper Dive. http://blog.cloudera.com/blog/2013/06/introduction-to-apache-hbase-snapshots-part-2-deeper-dive/

HBase可靠性管理方法浅析的更多相关文章

  1. HBase性能优化方法总结(转)

    原文链接:HBase性能优化方法总结(一):表的设计 本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法.有关HBase系统配置级别的优化,可参考:淘宝Ken Wu同学的博客. ...

  2. oracle使用还原段的目的和还原数据的管理方法及还原段的类型

    一.引入还原段主要有3个目的: 1.事务回滚:主要是针对rollback语句起作用 2.事务恢复:非正常关闭数据库即非保留事务级关闭数据库(abort.immediate)或者数据库instance崩 ...

  3. 现代JVM内存管理方法的发展历程,GC的实现及相关设计概述(转)

    JVM区域总体分两类,heap区和非heap区.heap区又分:Eden Space(伊甸园).Survivor Space(幸存者区).Tenured Gen(老年代-养老区). 非heap区又分: ...

  4. Oracle 用户权限管理方法

    Oracle 用户权限管理方法 sys;//系统管理员,拥有最高权限 system;//本地管理员,次高权限 scott;//普通用户,密码默认为tiger,默认未解锁 sys;//系统管理员,拥有最 ...

  5. Oracle SQL 基本操作之 用户权限管理方法

     Oracle SQL 基本操作之 用户权限管理方法 最近把有关用户操作和权限管理的东西整理了一下,虽然不少博客都有过类似的整理,但是自己发现他们的内容或多或少都有些错误.于是,本人亲自对每条语句进行 ...

  6. C# Winform窗口之间传值的多种方法浅析(转)

    摘要http://www.jb51.net/article/63837.htm 这篇文章主要介绍了C# Winform窗口之间传值的多种方法浅析,本文起讲解了通过构造器传值.通过属性传递.通过事件携带 ...

  7. windows的三种内存管理方法

    Windows的内存管理方法 windows提供了3种方法来进行内存管理: l         虚拟内存,最适合用来管理大型对象或者结构数组 l         内存映射文件,最适合用来管理大型数据流 ...

  8. MySQL中同时存在创建和更新时间戳字段解决方法浅析

    MySQL中同时存在创建和更新时间戳字段解决方法浅析 明确我的MySQL版本.mysql> SELECT VERSION();+------------+| VERSION() |+------ ...

  9. PCA(主成分分析)方法浅析

    PCA(主成分分析)方法浅析 降维.数据压缩 找到数据中最重要的方向:方差最大的方向,也就是样本间差距最显著的方向 在与第一个正交的超平面上找最合适的第二个方向 PCA算法流程 上图第一步描述不正确, ...

随机推荐

  1. 主要看思路:区域数据去重 + JavaScript一次性展示几万条数据实例代码

    近期做1功能,Gis地图 基于百度地图api , 会遇到的问题的, 如后台接口给的数据很多,大几千上万的,如果拿了数据直接渲染dom ,这滋味爽爽的. 再遇上 客户端浏览器悲催的,这卡顿就来了... ...

  2. [算法练习]String to Integer (atoi)

    题目说明: Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input ...

  3. 安卓app开发-05-Android xml布局详细介绍

    安卓app开发-05-Android xml布局详细介绍 虽然说有 墨刀,墨客 这些图形化开发工具来做 Android 的界面设计,但是我们还是离不开要去学习做安卓原生app,学习 xml 布局还是必 ...

  4. 网络文学带动的IP热

    网络文学从最初被人诟病不入流到现今直接带动整个网络文学产业链发展以及IP热,其发展历程如何?现今布局如何?以下做简单概括. 下图为艾瑞PC指数文学网站排名,由图可看出晋江原创网排名首位. 晋江隶属盛大 ...

  5. git 打包报错:Maven Build时提示:Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test

    1.使用git 升级 服务命令 mvn  deploy -e 之后报错: Failed to execute goal org.apache.maven.plugins:maven-surefire- ...

  6. IntelliJ Idea编译报错:javacTask: 源发行版 1.8 需要目标发行版 1.8

    解决办法: 1.Project Settings-Modules,选择项目,选择language level 8 2.选中项目,右击选择Maven-->Reimport, 再次编译. 3.Fil ...

  7. vue学习(一)、Vue.js简介

    Vue.js 五天 汤小洋一. Vue.js简介1. Vue.js是什么Vue.js也称为Vue,读音/vju:/,类似view,错误读音v-u-e 版本:v1.0 v2.0 是一个构建用户界面的框架 ...

  8. java笔记--局部内部类认识与理解

    java内部类 内部类应用最多的场景是在编写GUI程序时,将大量的事件监听处理放在了内部类中进行 --如果朋友您想转载本文章请注明转载地址"http://www.cnblogs.com/XH ...

  9. 【Oracle】等待事件详细内容

    一.等待事件的相关知识 1.1 等待事件主要可以分为两类,即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件.1). 空闲等待事件指ORACLE正等待某种工作,在诊断和优化数据库的时候,不 ...

  10. 使用元数据简化jdbc代码---查询操作(用到反射)

    使用元数据简化jdbc代码---查询操作(用到反射) 一  思路分析 简化就是把共同的地方提取出来并放到一个方法里,在用到时只要调用就ok了,上一篇介绍了更新的操作,而查询的操作相对来说比较复杂,因为 ...