HBase原理

栏目: 数据库 · 发布时间: 6年前

内容简介:HDFS提供了分布式底层文件系统,解决了基础设施层面文件存储的问题,但是对于文件内容的查询等操作需要依赖于MapReduce计算框架,且效率低下。HBase支持在HDFS之上存储大文件,并提供比HDFS更高效检索数据的框架,下面是学习的一写资料整理。下图是网上找到的,虽然版本比较旧,涉及的一些内容在新版本上已有更新,但是基本表述清楚了HBase的整体架构和核心原理。

HDFS提供了分布式底层文件系统,解决了基础设施层面文件存储的问题,但是对于文件内容的查询等操作需要依赖于MapReduce计算框架,且效率低下。HBase支持在HDFS之上存储大文件,并提供比HDFS更高效检索数据的框架,下面是学习的一写资料整理。

总体架构

下图是网上找到的,虽然版本比较旧,涉及的一些内容在新版本上已有更新,但是基本表述清楚了HBase的整体架构和核心原理。

HBase原理

数据流程

要了解数据流程,除了知道前面大图中涉及的HBase基本组件之外,还需要了解以下知识点:

  • HRegion由多个Store组成(每个Store对应一个clumne family),Store内部包含memstore和多个HFile(多个HFile的原因是Minor Compact会生成很多的storeFile,其实storeFile就是HFile);
  • region server上的所有region都共享同一个HLog。

读取流程

hbase:meta
hbase:meta

写入流程

  1. client请求到达region server,region server在写完HLog以后,数据写入的下一个目标就是region的memstore;
  2. 写入到memstore后,该次写入请求就可以被返回,HBase即认为该次数据写入成功(支持三种刷盘方式);
    1. 通过全局内存控制,触发memstore刷盘操作
    2. 手动触发memstore刷盘操作
    3. memstore上限触发数据刷盘
  3. 每次memstore的刷盘都会相应生成一个存储文件storeFile(即HFile在HBase层的轻量级封装);
  4. region server通过compact把大量小的HFile进行文件合并,生成大的HFile文件(支持两种压缩类型);
    1. Minor Compact
    2. Major Compact(对整个region下相同CF的所有HFile进行compact,清理过期或者被删除的数据)

Region分裂

HBase同样提供了region的 split方案来解决大的HFile造成数据查询时间过长问题。

一个较大的region(指其内部的所有sotre总和达到阀值)通过split操作,会生成两个小的region,称之为 Daughter

  • 流程:
    1. region先更改ZK中该region的状态为SPLITING;
    2. Master检测到region状态改变;
    3. region会在存储目录下新建.split文件夹用于保存split后的daughter region信息;
    4. Parent region关闭数据写入并触发flush操作,保证所有写入Parent region的数据都能持久化;
    5. 在.split文件夹下新建两个region,称之为daughter A、daughter B;
    6. Daughter A、Daughter B拷贝到HBase根目录下,形成两个新的region;
    7. Parent region通知修改.META.表后下线,不再提供服务;
    8. Daughter A、Daughter B上线,开始向外提供服务;
    9. 如果开启了balance_switch服务,split后的region将会被重新分布。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Java Web服务:构建与运行

Java Web服务:构建与运行

Martin Kalin / 任增刚 / 电子工业出版社 / 2009年11月 / 45.00元

本书以示例驱动的方式详尽地介绍了XML Web服务(JAX-WS)和RESTful Web服务(JAX-RS)二者所涵盖的Java相关API。 《Java Web服务:构建和运行》这本书以清晰、务实的方法讲述Web服务相关技术,提供了混合性的架构总结、完全可以运行的代码示例,以及编译、部署和执行应用程序的一些短小精悍的指令。学习本书,读者将掌握如何从零开始编写Web服务或将已有的服务整合到现......一起来看看 《Java Web服务:构建与运行》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具