4.3.1-Hbase-调研
优质
小牛编辑
133浏览
2023-12-01
1.2.2 Hbase 数据存储目录解析
目录 | 内容 |
---|---|
.tmp | 对表进行创建或删除操作时,将表放入 tmp 中。 |
WALs | 操作日志。 |
archive | 存储表的归档与快照,Hbase 在分割或合并操作时,将新生成 HFile 写入 archive 中,删除之前的 HFile 。 |
corrupt | 损坏的日志文件。 |
data | 存储系统表数据和用户表数据。 |
hbase.id | 标识 hbase 进程。 |
hbase.version | HFile文件版本信息。 |
oldWALs | 存储持久化后的操作日志。 |
1.2.3 Hbase 元信息表
Meta Table:Zookeeper保存 MetaTable 的 Region 地址,类似B_Tree结构。 键:region的起始键,region id。 值:Region Server。 Meta Table功能:输入表名+key,输出regionServer+regionid。
1.3 Hbase 存储设计
1.3.1 Hbase 中的 LSM 存储思想
1.3.1.1 概念
LSM:日志结构合并树。
1.3.1.2 Hbase 存储模块简介
1.3.1.3 Hbase Region 解析
Region:根据rowkey分割。一个Region中有多个MemStore,一个 HStore 有多个 StoreFile,一个 HStore 对应一个ColumnFamily。 TableName、 StartRow、 createTime:Region 创建时间,该 Region 第一个 row 插入时间。 Region 是负载均衡和分布式存储的最小单元,HFile 是存储的最小单元。 Region 数据过多,查找效率低;少,并行度差,Region 数量不能低于集群中节点数量。 Region 的分割过程。
1.3.1.4 HFile 解析
存在硬盘上,根据排序好的键存储数据行,每个 HStore 一个 cf 的,使用键值排序。包含了多层索引系统,使 Hbase 在不读取整个文件的情况下读取数据。 键值对根据键大小进行升序排序。 索引指向64KB的数据块。(相当于数据库的块索引)。 每一个数据块中还有相应的叶索引。 每一个数据块的最后一个键作为中间索引。 根索引值指向中间索引。 文件结尾指向meta block
1.3.1.5 Hbase WAL 解析
1.3.1.6 Hbase Compaction 解析
1.3.2 缓存
术语 | 解释 |
---|---|
Block Cache | 读缓存。 |
MemStore | 写缓存,当MemStore中积累足够多的数据时就会将其中的数据写入HDFS的HFile中。 |