Hbase系统架构
Hbase系统架构
一、Hbase是主从结构
主节点:HMaster
(1)为Regionserver分配region(创建表默认有一个region)
(2)负责Regionserver的负载均衡
(3)发现失效的Regionserver并重新分配其上的region
(4)管理用户对table结构的增删改操作
从节点:HRegionServer
(1)Regionserver维护region,处理对这些region的IO请求
(2)Regionserver负责切分在运行过程中变得过大的region(split操作)
注意:IO请求包括读(查)、写的操作
二、Region的详细介绍
1、HBase自动把表水平划分成多个区域(region),每个region会保存一个表里面某段连续的数据;
第一个region没有start rk,最后一个region没有end rk,
中间的region既含有start rk,又含有end rk
2、每个表一开始默认只有一个region,随着数据不断插入表,region不断增大,当增大到一个阀值的时候,
region就会等分会两个新的region(裂变)。
当table中的行不断增多,就会有越来越多的region。这样一张完整的表被保存在多个Regionserver 上。
三、Memstore 与 storefile
每个从节点
Hregionserver
包含若干个HRegion
每个
HRegion
包含若干个Store
每个
Store
包含若干个memstore
、storefile
1、一个region由多个store组成,一个store对应一个CF(列族);
store包括位于内存中的memstore和位于磁盘的storefile;
写操作先写入memstore,当memstore中的数据达到某个阈值,
HRegionserver会启动flashcache进程写入storefile,每次写入形成单独的一个storefile.
2、每次写到128M,就会生成一个storefile,当storefile文件的数量增长到一定阈值后,
系统会进行合并(minor compaction、major compaction),(minor compaction只能
进行一些简单的合并),在合并过程中会进行版本合并和删除工作(由major compaction完成),
形成更大的storefile
3、随着不断地合并,storefile会越来越大,当一个region所有storefile的大小和数量超过一定阈值后,
就会进行切分,会把当前的region分割为两个,并由 hmaster分配到相应的Regionserver服务器,
实现负载均衡
4、客户端检索数据,先在memstore找,找不到再找storefile
四、Hbase架构图
1、HRegionserver负责管理HRegionn,每个HRegionserver有一个Blockcache,
Blockcache作为缓存,加速查询请求
2、每个HRegionserver有一个HLOG,HLOG负责操控日志文件
3、每个HRegionserver包含若干个HRegion,
每个HRegion包含若干个Store,
每个Store对应着一个列簇(cf)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)