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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值