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包含若干个memstorestorefile

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架构图

image

1、HRegionserver负责管理HRegionn,每个HRegionserver有一个Blockcache,
   Blockcache作为缓存,加速查询请求
2、每个HRegionserver有一个HLOG,HLOG负责操控日志文件
3、每个HRegionserver包含若干个HRegion,
   每个HRegion包含若干个Store,
   每个Store对应着一个列簇(cf)
posted @   阿伟宝座  阅读(355)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示