HBASE(四 原理篇)

来源:互联网 发布:药家鑫该不该死 知乎 编辑:程序博客网 时间:2024/06/14 13:53

HBase原理

首先理解四个概念
RowKey colfam cell timestamp

这四个不多说 列式存储 宽表
经典全局图:
这里写图片描述

1.HRegionServer
每一台存储数据节点的服务器都是一个HRegionServer
HRegionServer 负责的是region的切割 数据读取等操作
HRegionServer 是有HLogHRegion 组成的 。
2.Region
Region是分布式存储和负载均衡的最小单元 但不是存储的最小单元。
Region是由一个0个或多个Store组成的 。每一个Store对应一个列族 ,所以有几个列族 就有几个Store。
3.Store
Store是存储的最小单元。Store是有一个memStore和0到多个StoreFile组成的。其中memStore是在内存中的,StoreFile是在磁盘上的。
4.HFile
HFile是StoreFile在HDFS上的轻量级存储形式。

写操作:
Client提交一个Put请求到RegionServer,数据首先会写到WAL中
当数据写到WAL之后,数据会写到MemStore中,等待刷新到磁盘中
数据写到MemStore完成之后,RS会给Client发送确认信息

这里写图片描述

这里写图片描述
读流程

首先扫描BlockCache(读缓存)中寻找row cell,若没有则执行2
扫描MemStore(写缓存)中寻找row cell,若没有则执行3
HBase会使用BlockCache索引和bloom filters来加载那包含目标row cells的HFile到内存

切割和合并
这里写图片描述

Client写入 -> 存入MemStore,一直到MemStore满 -> Flush成一个StoreFile,直至增长到一定阈值 -> 出发Compact合并操作 -> 多个StoreFile合并成一个StoreFile,同时进行版本合并和数据删除 -> 当StoreFiles Compact后,逐步形成越来越大的StoreFile ->单个StoreFile大小超过一定阈值后,触发Split操作,把当前Region Split成2个Region,Region会下线,新Split出的2个孩子Region会被HMaster分配到相应的HRegionServer 上,使得原先1个Region的压力得以分流到2个Region上

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 入职体检没过怎么办 入职体检血压高怎么办 看病没带医保卡怎么办 孕妇8个月血压高怎么办 怀孕3个月血压高怎么办 怀孕3个月血压低怎么办 38周孕妇血压高怎么办 孕前检查后怀孕怎么办 精子a加b成活率底怎么办 怀孕五周孕酮低怎么办 怀孕38天孕酮低怎么办 刚怀孕了孕酮低怎么办 怀孕2个月孕酮低怎么办 怀孕七周孕酮低怎么办 孕前检查孕酮低怎么办 甘油三酯偏高7.2怎么办 入职体检来例假怎么办 6激素检查喝水了怎么办 抽血前吃了东西怎么办 怀孕一个月孕酮低怎么办 怀孕了老是有痰怎么办 孕妇有很多白痰怎么办 血糖高怎么办吃什么好 5年糖尿病血糖高怎么办 血糖高引起的视力模糊怎么办 谷丙转氨酶和谷草转氨酶高怎么办 产检血糖有点高怎么办 孕期餐后血糖高怎么办 怀孕12周血糖高怎么办 怀孕2个月血糖高怎么办 怀孕7个月血糖高怎么办 孕妇7个月血糖高怎么办 空腹血糖6%2e7怎么办 血糖和尿酸都高怎么办 血糖高的孕妇便秘怎么办 血糖低怎么办吃什么好 孕检空腹血糖高怎么办 怀孕4个月血糖高怎么办 怀孕3个月血糖高怎么办 怀孕6个月血糖高怎么办 孕29周血糖高怎么办