HBase数据的物理存储

HBase的数据存储方式对于实现自己的数据库产品有借鉴和指导意义,因此总结一下,以作备忘。

HBase在文件系统中存储数据,而为了使系统具备良好的扩展性和可用性,一般使用HDFS作为该文件系统。

HBase的基本存储单元是Key-Value对,其中Key由行键(Row Key)、列族名称、列修饰符、版本号构成。整个HBase存储系统可以认为是维护了一个大型的Key-Value对集合。理所当然地,我们认为HBase中的基本操作是针对Key-Value对的PUT、GET、DELETE操作。HBase确实支持这些基本操作。但是,在实际的应用中,使用这些基本操作通常不是频繁用例,而更多的用例是以行(Row)为单位进行的PUT、GET、DELETE、SCAN操作。为此,HBase自动完成将一行拆分成多个Key-Value对或将属于同一行的各个Key-Value对封装成一行的工作。

HBase维护的各个Key-Value对的集合总是按Key有序的,这种集合包括磁盘上的StoreFile和内存中的MemStore。MemStore存在于内存,且其中的Key-Value对是动态插入。通过实施按序插入可以保证MemStore总是有序。StoreFile虽然存在于磁盘,但是它们是只读的,在某次需要将MemStore写到磁盘时被创建,以最优B+树(由于数据是现成的,因此可以做到最优)的数据组织方式存储了写到磁盘的MemStore,因此也总是有序的。

对HBase状态的更新总是通过向MemStore中添加新的Key-Value对进行,当然在MemStore满或其他Flush事件出现时,需要将MemStore写到磁盘上的StoreFile中。若是PUT一个Key-Value对,可以将该Key-Value对直接插入MemStore;若是DELET

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值