Hbase扫描HFile原理

HFile文件结构

首先要了解下它,才能知道它是怎么查找的。

在这里插入图片描述

如上图:

HFile分为四部分(针对HFile v2)

  • Trailer 我理解它就是一个类似于文件头的东西,存储一些HFile的基本信息,比如版本号,各个块的偏移量
  • Load-on-open section 启动时会将它存入内存,保存一些一级索引的数据
  • No-Scanned block section 理解它为二级索引即可
  • scanned block section 理解它为三级索引加数据即可

构建索引

根据上图中的root data index --> intermediate index —> leaf index构建一个三级索引

在这里插入图片描述

每级索引的结构有些不相同但是都是在索引块存储了对应的指向block (可能是索引可能是数据)

  • block的地址偏移量
  • block的大小
  • block的首个key

由于hbase都是保证数据在内存中是有序的然后刷进文件了,那么文件也是有序。

所以偏移量和首个key那么就可以在索引树上每一层都使用二分法进行搜索然后在数据块上找到最终的数据。

注意:在每一层索引上使用二分,最后一层是数据与索引块交替出现的

如下图:
在这里插入图片描述

三种类型的block

HFile的最基础的逻辑块就是block

它可以存储索引,也可以存数据,也可以存布隆过滤器的bit数组

下面就不细讲了,去看原文吧

上图:

Trailer

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Uewy1enq-1615717497970)(assets/image-20201202235311217.png)]

从图中可以看出,如果是定位最后一个或者第一个数据块那么是不走索引的,直接就到了数据块

Data Block

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-balby7st-1615717497973)(assets/image-20201202235441787.png)]

hbase中最基础的 KV对就是这样,value就是简单的二进制流

Bloom Block

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fj1Pr2Qc-1615717497976)(assets/image-20201202235630445.png)]

图中Bloom Block存储的是通过hash得到的bit数据,详细了解请先看bloom过滤器的原理

root index block

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W17eAvOA-1615717497980)(assets/image-20201202235915598.png)]

MidKey表示HFile所有Data Block中中间的一个Data Block,用于在对HFile进行split操作时,快速定位HFile的中间位置。

[入门数据分析的第一堂课]这是一门为数据分析小白量身打造的课程,你从网络或者公众号收集到很多关于数据分析的知识,但是它们零散不成体系,所以第一堂课首要目标是为你介绍:Ø  什么是数据分析-知其然才知其所以然Ø  为什么要学数据分析-有目标才有动力Ø  数据分析的学习路线-有方向走得更快Ø  数据分析的模型-分析之道,快速形成分析思路Ø  应用案例及场景-分析之术,掌握分析方法[哪些同学适合学习这门课程]想要转行做数据分析师的,零基础亦可工作中需要数据分析技能的,例如运营、产品等对数据分析感兴趣,想要更多了解的[你的收获]n  会为你介绍数据分析的基本情况,为你展现数据分析的全貌。让你清楚知道自己该如何在数据分析地图上行走n  会为你介绍数据分析的分析方法和模型。这部分是讲数据分析的道,只有学会底层逻辑,能够在面对问题时有自己的想法,才能够下一步采取行动n  会为你介绍数据分析的数据处理和常用分析方法。这篇是讲数据分析的术,先有道,后而用术来实现你的想法,得出最终的结论。n  会为你介绍数据分析的应用。学到这里,你对数据分析已经有了初步的认识,并通过一些案例为你展现真实的应用。[专享增值服务]1:一对一答疑         关于课程问题可以通过微信直接询问老师,获得老师的一对一答疑2:转行问题解答         在转行的过程中的相关问题都可以询问老师,可获得一对一咨询机会3:打包资料分享         15本数据分析相关的电子书,一次获得终身学习
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值