当前位置:   article > 正文

Hbase数据结构与算法_hbase索引数据结构

hbase索引数据结构

Hbase数据结构与算法

Hbase的一个列族本质上是一棵LSM树(Log Structured Merge Tree)。LSM树分为内存和磁盘部分。内存部分是一个维护有序数据集合的数据结构。hbase选择了跳表。磁盘部分是由一个个独立文件组成,每一个文件都是一个数据块。对于数据存储在磁盘上的系统来说,磁盘寻道以及数据读取都是非常耗时的操作。因此,为了避免不必要的IO耗时。因此在次盘中存储一些额外的二进制数据,这些数据用来判断制定的key是否有可能存储在这个数据块中,这个数据结构称为布隆过滤器

跳表

跳表插入/删除/查找的时间复杂度是O(logN)

LSM树

LSM树本质和B+树一样,是一种磁盘数据的索引结构。但是和B+树不同的是,LSM树的索引对写入请求更友好。因为LSM会把写入请求处理为顺序写。而HDFS适合顺序写
LSM 索引一般两部分组成,一部分是内存部分,一部分是磁盘部分。内存部分一般采用跳跃表来维护一个有序的KeyValue集合。磁盘部分一般由多个内部KeyValue有序的文件组成。

KeyValue存储格式

一般来说,LSM存储的事多个keyvalue组成的集合,每一个keyvalue一般会用一个字节数组表示。字节数组主要分为以下几个部分:

  • keyLen,valueLen,rowkeyLen 表示占用的字节长度
  • rowkeybytes:占用rowkeylen个字节,用来存储rowkey的二进制内容
  • familyLen:占用1字节,用来存储family二进制内容。
  • qualifierBytes。存储qualifi
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/725282
推荐阅读
相关标签
  

闽ICP备14008679号