行业资讯 2025年08月6日
0 收藏 0 点赞 239 浏览 1870 个字
摘要 :

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




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

HBase体系架构及组件

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

组件:

1、元数据存储ZooKeeper

首先来看一下ZooKeeper组件,该组件主要用于存储HBase的schemaTable元数据,它保障在任何时候,集群中只有一个Master,同时,ZooKeeper 用来存贮所有Region的寻址入口,进行实时监控RegionServer的上线和下线信息,并且实时通知HMaster

2、资源分配HMaster

HMaster组件类似HDFS中的NameNode,它不存储数据,主要作用是为RegionServer分配Region,同时负责RegionServer的负载均衡,如果发现失效的RegionServer,它会重新分配上面的Region, HMaster 组件还会管理用户对Table的增、删、改操作。

RegionServer 其实是Hbase的服务,部署在一台物理服务器上,region有一点像关系型数据的分区,数据存放在region中,当然region下面还有很多结构,确切来说数据存放在memstore和hfile中。我们访问hbase的时候,先去hbase 系统表查找定位这条记录属于哪个region,然后定位到这个region属于哪个服务器,然后就到哪个服务器里面查找对应region中的数据:

1)Region是HBase数据存储和管理的基本单位。
2)一个表中可以包含一个或多个Region。
3)每个Region只能被一个RS(RegionServer)提供服务,RS可以同时服务多个Region,来自不同RS上的Region组合成表格的整体逻辑视图。

3、 Region的处理HRegionServer

HMaster组件类似HDFS中的NameNode,而HRegionServer组件则类似HDFS中的DataNode。HRegionServer 组件负责维护Region, 处理对Region 的I/O 请求,同时,HRegionServer会负责切分在运行过程中变得过大的Region。

4、保持访问性能Client

Client组件主要包含访问HBase的接口,同时维护Cache来加快对HBase的访问性能。

5、分布式存储和负载均衡最小单元Region

在前面介绍组件时,已经说到Region了。Region 是HBase中分布式存储和负载均衡
的最小单元,HBase 会自动把表水平划分成多个区域,也就是多个Region。 每个Region会保存一个表里面某段连续的数据,每个表一开始只有 一个 Region,随着数据不断插入,Region会不断增大,当增大到一个阀值的时候,Region 就会等分成两个新的Region, 这个等分的过程又称之为裂变

当表中的行不断增多时,就会有越来越多的Region。这样张完整的表被保存在多个RegionServer 上。

6、MemStore与StoreFile组件

一个区域, 也就是一个 Region往往由多个Store组成,一个Slore包括位于内存中的MemStore和位于磁盘的StoreFile。

HBase 执行原理

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

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

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

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

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

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/7994.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

988
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

465
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

348
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

456
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

517
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

832
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号