【大数据学习 | 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分裂。

相关推荐
Sunyanhui137 分钟前
牛客网 SQL36查找后排序
数据库·sql·mysql
云云32143 分钟前
怎么通过亚矩阵云手机实现营销?
大数据·服务器·安全·智能手机·矩阵
fkdw1 小时前
C# Newtonsoft.Json 反序列化派生类数据丢失问题
c#·json
新加坡内哥谈技术1 小时前
苏黎世联邦理工学院与加州大学伯克利分校推出MaxInfoRL:平衡内在与外在探索的全新强化学习框架
大数据·人工智能·语言模型
Data-Miner1 小时前
经典案例PPT | 大型水果连锁集团新零售数字化建设方案
大数据·big data
lovelin+v175030409662 小时前
安全性升级:API接口在零信任架构下的安全防护策略
大数据·数据库·人工智能·爬虫·数据分析
道一云黑板报2 小时前
Flink集群批作业实践:七析BI批作业执行
大数据·分布式·数据分析·flink·kubernetes
节点。csn2 小时前
flink集群搭建 详细教程
大数据·服务器·flink
Mitch3112 小时前
【漏洞复现】CVE-2021-45788 SQL Injection
sql·web安全·docker·prometheus·metersphere