HBase体系架构、组件及执行原理

IT 文章5年前 (2021)发布 小编
0 0 0

本节内容主要介绍HBase体系架构中的各个组件,来看下每个组件的作用及组件之间是如何相互协作的,另外还介绍HBase的执行原理。

HBase体系架构及组件

首先我们来看下HBase的体系架构图:
HBase体系架构、组件及执行原理

组件:

[v_act]1、元数据存储ZooKeeper[/v_act]首先来看一下ZooKeeper组件,该组件主要用于存储HBase的schemaTable元数据,它保障在任何时候,集群中只有一个Master,同时,ZooKeeper 用来存贮所有Region的寻址入口,进行实时监控RegionServer的上线和下线信息,并且实时通知HMaster
[v_act]2、资源分配HMaster[/v_act]HMaster组件类似HDFS中的NameNode,它不存储数据,主要作用是为RegionServer分配Region,同时负责RegionServer的负载均衡,如果发现失效的RegionServer,它会重新分配上面的Region, HMaster 组件还会管理用户对Table的增、删、改操作。
[v_blue]RegionServer 其实是Hbase的服务,部署在一台物理服务器上,region有一点像关系型数据的分区,数据存放在region中,当然region下面还有很多结构,确切来说数据存放在memstore和hfile中。我们访问hbase的时候,先去hbase 系统表查找定位这条记录属于哪个region,然后定位到这个region属于哪个服务器,然后就到哪个服务器里面查找对应region中的数据:

ad

程序员导航

优网导航旗下整合全网优质开发资源,一站式IT编程学习与工具大全网站

1)Region是HBase数据存储和管理的基本单位。
2)一个表中可以包含一个或多个Region。
3)每个Region只能被一个RS(RegionServer)提供服务,RS可以同时服务多个Region,来自不同RS上的Region组合成表格的整体逻辑视图。[/v_blue]
[v_act]3、 Region的处理HRegionServer[/v_act]HMaster组件类似HDFS中的NameNode,而HRegionServer组件则类似HDFS中的DataNode。HRegionServer 组件负责维护Region, 处理对Region 的I/O 请求,同时,HRegionServer会负责切分在运行过程中变得过大的Region。
[v_act]4、保持访问性能Client[/v_act]Client组件主要包含访问HBase的接口,同时维护Cache来加快对HBase的访问性能。
[v_act]5、分布式存储和负载均衡最小单元Region[/v_act]在前面介绍组件时,已经说到Region了。Region 是HBase中分布式存储和负载均衡
的最小单元,HBase 会自动把表水平划分成多个区域,也就是多个Region。 每个Region会保存一个表里面某段连续的数据,每个表一开始只有 一个 Region,随着数据不断插入,Region会不断增大,当增大到一个阀值的时候,Region 就会等分成两个新的Region, 这个等分的过程又称之为裂变

当表中的行不断增多时,就会有越来越多的Region。这样张完整的表被保存在多个RegionServer 上。
[v_act]6、MemStore与StoreFile组件[/v_act]一个区域, 也就是一个 Region往往由多个Store组成,一个Slore包括位于内存中的MemStore和位于磁盘的StoreFile。

HBase 执行原理

前面介绍了HBese的体系架构, 接着结合下图来看一下HBase的执行原理,
HBase体系架构、组件及执行原理
从上图中可以看出,左边的Table包含多个Region,每个Region中又有多个Store,同时,每个Store又由一个MemStore和0至多个StoreFile组成。

为了更好地理解HBase执行原理,结合HBase体系架构图,可以看出StoreFile以HFile格式保存在HDFS上。

ad

AI 工具导航

优网导航旗下AI工具导航,精选全球千款优质 AI 工具集

在执行写入操作时,会先将数据写入MemStore中,当MemStore中的数据达到某个阈值时,HRegionServer 会启动Flash Cache进程写入StoreFile,每次写入会形成单独的一个StoreFile。当StoreFile文件的数量增长到一定阈值后,系统会进行合并,在合并过程中会进行版本合并和删除工作,形成更大的StoreFile。

当一个Region中所有的SoreFile大小之和超过一定阈值后,会把当前的Region分割为两个,并由HMaster分配到相应的RegionServer服务器上,实现负载均衡。

在检索数据时,会先从MemSore中进行查找,如果从MemStore中找不到数据,会再从StoreFile上查找。

© 版权声明

相关文章

暂无评论

暂无评论...