Hbase架构以及原理

本文介绍了HBase的核心组件HMaster和HRegionServer的职责,包括负载均衡、Region分配和故障恢复。详细阐述了HBase的读写过程,涉及MemStore、StoreFile和HLog的角色。在读取时,数据首先在MemStore中查找,其次在BlockCache和StoreFile中搜索。写入时,数据先写入HLog,然后进入MemStore,当达到一定条件时,会触发Flush和Compaction操作。此外,文章提到了-ROOT-和.META.表在系统中的关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

HMaster:

1.为Region server分配region
2.负责Region server的负载均衡
3.发现失效的Region server并重新分配其上的region。
4.HDFS上的垃圾文件回收。
5.处理schema更新请求。

HRegionServer:

1、管理用户对Table表的增、删、改、查操作;
2、管理HRegion服务器的负载均衡,调整HRegion分布;
3、在HRegion分裂后,负责新HRegion的分配;
4、在HRegion服务器停机后,负责失效HRegion服务器上的HRegion迁移。

HRegion:存储数据,以Rowkey方向来划分多个Region,这样理解,里面存放的是以列(store)为单位的数据,它只是一个基本的数据单位
Store:为一个存储单元,为column familly,一个列族的所有信息
MemStore:是一个内存区域

Hlog:记录操作信息,保证数据完整性

StoreFile:是hbase中的数据文件,而HFile是它的数据存储的实体

StoreFile以HFile格式保存在HDFS上。HFile是Hadoop的二进制格式文件。实际上StoreFile就是对HFile做了轻量级包装,即StoreFile底层就是HFile

读数据的时候:

大致流程:
Client访问Zookeeper获得的元数据,然后去指定的HRegionServer中的HRegion查找数据,首先去MemStore去看看有没有,有就直接返回,没有就去StoreFile找。
在这里插入图片描述
详细流程
Client通过ZK获得-ROOT-表的位置,然后访问它获得-META-表中对应的Region的位置,然后去读,请求先到MemStore中查数据,查不到就到BlockCache中查,再查不到就会到StoreFile上读,并把读的结果放入BlockCache,缓存返回数据。
在这里插入图片描述

写数据的时候:

大致流程:
在这里插入图片描述
Client获得Zookeeper存储的HMaster返回的元数据信息,去指定的HRegionServer中的HRegion下,首先是把Log写入到HLog中,HLog是标准的Hadoop Sequence File,由于Log数据量小,而且是顺序写,速度非常快;同时把数据写入到内存MemStore中,成功后返回给Client,所以对Client来说,HBase写的速度非常快,因为数据只要写入到内存中,就算成功了。
接着检查MemStore是否已满,如果满了,就把内存中的MemStore Flush到磁盘上,形成一个新的StoreFile。
当Storefile文件的数量增长到一定阈值后,系统会进行合并(Compact),在合并过程中会进行版本合并和删除工作,形成更大的storefile。
当Storefile大小超过一定阈值后,会把当前的Region分割为两个(Split),并由Hmaster分配到相应的HRegionServer,实现负载均衡

-ROOT- 与-MATE-

在这里插入图片描述

在这里插入图片描述
ROOT和MATE表 -》https://blog.youkuaiyun.com/ldds_520/article/details/51674315

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值