【大数据学习 | HBASE】hbase的整体架构

hbase的region存储原理图

首先我们看到hbase的组成分为两个大的部分 ,分别是hmaster和hregionserver主节点用于协调数据,regionserver用于真正的去管理表 ,其中regionserver 存在多个,他们共同协调管理全有的表,负载均衡,共同分摊压力 ,其中一个表会由一个regionserver进行管理,这样压力都会集中在一个regionserver中,并且查询速度会比较慢,那么为了并行操作查询效率升高一个表会分为多个部分分散在多个regionserver中进行管理,每个表会按照行进行拆分为多个region,一个region是一个表的横向切割的部分内容,所以一个表切割完毕以后会存在多个region部分,分别交给不同的regionserver进行管理一个region会包含一个表所有的列信息,然后这些信息会按照列族进行存储,一个region中存在多少个列族就会有多少个Store,一个store中又会存在一个memstore进行缓存客户端对于这个列族的所有操作,这个memstore的缓存部分写满以后会以文件的形式写到本地磁盘中,这个文件叫做storeFile,最后这个storeFile会写出到hdfs中以HFile的形式进行存储。

hbase的组件结构如下

HMaster

hmaster一般都是两台机器,使用zookeeper进行管理和协调

管理表操作,如:create、alter、drop;

管理HRegionServer的负载均衡,调整region分布;

region split后,负责新region重分布;

在HRegionServer停机后,负责失效的HRegionServer上region的迁移;

HRegionServer

真正干活的节点,一般会和datanode部署到一起

维护region,处理region的IO请求,如:put、get、scan、delete;

regionserver负责切分在运行过程中逐渐变大的region

Region

一个表会按照rowkey的范围进行行级别的分割,分割出来的一个部分就叫做region ,它是表的一部分数据,可以分散到不同的regionserver中进行管理,是一个表的最小负载均衡的单位
每个region都会记录自己的startkey和endkey的范围。

Store

每一个列族对应一个Store,一个Region里包含一个或者多个Store,由此在设计cf时,尽量将同一系列的数据存在一个列族中,便于同一系列的数据都存在同一个region中。

Hlog

hbase WAL(write ahead log) ,**在用户发起写请求时先向Hlog写一份,然后再将数据向memstore中写,Hlog数据是写磁盘,为了避免HRegionServer故障时memstore数据丢失,**Hlog滚动更新,新数据会加入会对应冲抵掉较早的Hlog数据。

Memstore

hbase写缓存 ,在用户发起写请求时先写入hlog,然后再写入memstore中,当memstore写入达到flush阈值时,将memstore中的数据写到hdfs上(hfile)每个列族对应一个memstore,即一个HStore/Store中只有一个memstore。

storefile

​ 当memstore写数据达到设定的阈值之后,会将数据溢写到hdfs,即storefile,内部存储hfile。storefile会进行合并,当storefile经过多次合并后变得已经达到指定规则的分裂阈值,则再进行region分裂。

相关推荐
BlockOne112 分钟前
Meme 币生态全景图分析:如何获得超额收益?
大数据·人工智能·区块链
霸都小魔女5 分钟前
MT4交易的平仓与强制平仓有哪几种情况
大数据·人工智能·区块链
刘艳兵的学习博客10 分钟前
刘艳兵-DBA027-在Oracle数据库,通常可以使用如下方法来得到目标SQL的执行计划,那么通过下列哪些方法得到的执行计划有可能是不准确的?
数据库·oracle·面试·database·刘艳兵
武汉唯众智创24 分钟前
职业院校关于大数据、云计算和物联网传感器技术的结合与应用探讨
大数据·云计算·物联网传感器技术
十二同学啊30 分钟前
Mybatis拦截器中获取@RequestBody表单的值修改查询SQL
数据库·sql·mybatis
The博宇34 分钟前
网易SQL面试题
数据库·sql
埃菲尔铁塔_CV算法38 分钟前
人脸识别发展现状及发展前景
大数据·人工智能·算法
幺零九零零1 小时前
【Golang】sql.Null* 类型使用(处理空值和零值)
数据库·sql·golang
大数据编程之光2 小时前
【蚂蚁SQL面试题】蚂蚁数据研发一面面试题
java·sql·面试
API_technology2 小时前
java 串口 驱动
java·大数据·开发语言·数据库