Hba采用表来组织数据,采用行和列,行为行键,列为列族
通过{“行键”,“列族” ,“列限定符”,“时间戳”}来确定一个单元格。
具体的物理存储采用了基于列的存储方式,会按照列族的不同分别存放两个片段,分成contents和anchor,列族中还包括时间戳和行键。
逻辑上是空的地方不会单独用null存储,而是根本就不会被存储,也不会用null这个东西占据空间。
图4-5:晚婚婚假申请
表中的每一条数据是根据行键字典序列维护根据行键对表中每一条数据进行分区,分区被称作Region,是在分布式集群上分发的基本单位,分发到运行Region服务器的机器上图4-6:
-最初表中的只有一个Region,随着数据的不断插入,基于行键对数据进行分区的Region就会不断增大,在Region大小到达一个阀值的时候g31分裂成同等大小,实际的分裂过程是在Region服务器中进行的
大约的分布过程如下,Region存在Region服务器上
每一个Region都有唯一标识性,总体的三级寻址类似B+树
.META.是Region和Region服务器的对应关系表,又是元数据表,直到Region存放在那里映射关系多,.META.表也会被分成Region存在各个不同服务器上,-ROOT-表就是根数据表,用来存放.META.的Region的映射关系,-ROOT-只有一个Region,永远不会被划分Zookkeeper文件记录了-ROOT-表的位置信息通过三级寻址发现:
用户表Region个数 = -ROOT-表的映射关系个数 *. META.表的映射关系个数
多个不同的Region放在一台Region服务器上
一个Region中列族通过Store存储,Store由MemStore和StoreFile
MemStore是缓存,StoreFile是磁盘文件,先写入缓存,缓存满了,在写入磁盘空间,HFile就是StoreFIle的实现方式,Region会向整个HDFS系统去读写数据,所以安装hba和配置hba的时候需要配置参数,修改hba.rootdir,指定Hba的Master在NameNode运行的机器上,让HBa数据在HDFS集群上
启动HBa前需要设置属性hba.rootdir,用于指定HBa数据的存储位置
HLog就是日志,必须先写入日志才能够写入MemStore缓存
用户读写数据过程:
数据会先写进日河南财经网志HLog,然后写入缓存MemStore缓存刷新:缓存有大小,会周期性的将缓存内容写入磁盘的StoreFile,并向HLog文件打一个标记表示缓存内容已经写入磁盘StoreFile文件中,来证明MemStore内容对应的HLog日志内容写入磁盘StoreFile,晴空缓存。每一个的缓存刷新都会生成一个StoreFileSoreFile越来越多就会发生合并,到达阈值,就会发生分裂,这个时候对应的Region就会被分成两个Re广东五邑大学gion读过程:
先找缓存缓存找不到就去StoreFile去找相关数据本文地址:https://blog.csdn.net/liutao43/article/details/107372396
本文发布于:2023-04-07 12:38:45,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/2b14dbc31a7f55e8b6f3b7c538f71faf.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:hadoop学习笔记(五)HBase的原理及概念模型.doc
本文 PDF 下载地址:hadoop学习笔记(五)HBase的原理及概念模型.pdf
留言与评论(共有 0 条评论) |