1)Data Block 段–保存表中的数据,这部分可以被压缩
2)Meta Block 段 (可选的)–保存用户自定义的kv对,可以被压缩。
3)File Info 段–Hfile的元信息,不被压缩,用户也可以在这一部分添加自己的元信息。
4)Data Block Index 段–Data Block的索引。每条索引的key是被索引的block的第一条记录的key。
5)Meta Block Index段 (可选的)–Meta Block的索引。
6)Trailer– 这一段是定长的。保存了每一段的偏移量,读取一个HFile时,会首先读取Trailer,Trailer保存了每个段的起始位置(段的Magic Number用来做安全check),然后,DataBlock Index会被读取到内存中,这样,当检索某个key时,不需要扫描整个HFile,而只需从内存中找到key所在的block,通过一次磁盘io将整个 block读取到内存中,再找到需要的key。DataBlock Index采用LRU机制淘汰。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。