开发者社区> 问答> 正文

hbase 读取数据的时候怎么找到最新版本的数据的?

hbase 读取数据的时候怎么找到最新版本的数据的?

展开
收起
健东 2018-11-17 10:50:34 2180 0
1 条回答
写回答
取消 提交回答
  • 研究spark/hive/hbase相关技术

    HBase中数据独立地存在于Memstore和StoreFile中,Blockcache中的数据只是StoreFile中的部分数据(热点数据),即所有存在于Blockcache的数据必然存在于StoreFile中。因此MemstoreScanner和StoreFileScanner就可以覆盖到所有数据。实际读取时StoreFileScanner通过索引定位到待查找key所在的block之后,首先检查该block是否存在于Blockcache中,如果存在直接取出,如果不存在再到对应的StoreFile中读取。
    数据更新操作先将数据写入Memstore,再落盘。落盘之后不需要更新Blockcache中对应的kv,而且不会读到脏数据。数据写入Memstore落盘会形成新的文件,和Blockcache里面的数据是相互独立的,以多版本的方式存在。

    2019-07-17 23:15:07
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
HareQL:快速HBase查询工具的发展过程 立即下载
HBase源码解析 立即下载
实战-如何基于HBase构建图片视频数据的统一存储检索方案 立即下载