HBase HFileBlock】的更多相关文章

HFileBlock官方源码注释:   Reading HFile version 1 and 2 blocks, and writing version 2 blocks. In version 1 all blocks are always compressed or uncompressed, as specified by the HFile's compression algorithm, with a type-specific magic record stored in the…
1. Cache 读写  调用逻辑:  hmaster.handleCreateTable->HRegion.createHRegion-> HRegion. initialize->initializeRegionInternals->instantiateHStore  ->Store.Store->new CacheConfig(conf, family)-> CacheConfig.instantiateBlockCache->new LruBloc…
相信大家在看了该系列的前两篇文章就已经对其中的持久化有比较深入的了解.相对而言,本节内容只是对前两节的一个巩固.与持久化相对应的是打开文件并将其内容读入到内存变量中.而在本节,我就来介绍这一点. 本节我从方法HStore.validateStoreFile开始分析.在本节的末尾,我将会为大家带来CF目录下某个文件的文件结构.也算是本系列的一个完整结尾. 在该方法内部调用了方法createStoreFileAndReader.如下图所示.这里首先构造了StoreFileInfo.在构造StoreF…
正如上篇博文所说,在本节我将为大家带来StoreFlusher.finalizeWriter..如果大家没有看过我的上篇博文<HBase之CF持久化系列(续1)>,那我希望大家还是回去看一下,要不然本节的很多内容大家可能看不懂.闲话不说,让我们来到正文. 首先来到方法StoreFlusher.finalizeWriter,如下图所示. 1.这里的入参writer不知道大家是否还记得,他就是在上一节中构建的StoreFileWriter.这里调用了writer.appendMetadata,将一…
这一节本来打算讲解HRegion的初始化过程中一些比较复杂的流程.不过,考虑前面的博文做的铺垫并不够,因此,在这一节,我还是特意来介绍HBase的CF持久化.关于这个话题的整体流程性分析在博文<HBase数据持久化之HRegion.flushcache即CF持久化>中已经介绍过,大家最好先看一下我的上篇博文,然后再看这个系列(这个系列我预计会通过三篇博文来详细讲解).可以说,<HBase数据持久化之HRegion.flushcache即CF持久化>是CF持久化的概述,而本节是CF持…
Overview HBase中的一个big table,首先会按行划分成一些region(这些region之间是有序的,由startkey保证),每个region分配到不同的节点进行存储.因此,region是HBase分布式和负载均衡的最小单元. 对每个节点而言,它会对分配到的region是按列族进行存储的.也即,region被分为多个store(对应多个列族).而store内部,又有一个memStore和多个storeFiles组成. 数据首先更新到memStore,memStore会内排序,…
这一章讲hbase的缓存机制,这里面涉及的内容也是比较多,呵呵,我理解中的缓存是保存在内存中的特定的便于检索的数据结构就是缓存. 之前在讲put的时候,put是被添加到Store里面,这个Store是个接口,实现是在HStore里面,MemStore其实是它底下的小子. 那它和Region Server.Region是什么关系? Region Server下面有若干个Region,每个Region下面有若干的列族,每个列族对应着一个HStore. HStore里面有三个很重要的类,在这章的内容都…
继上一篇讲了Put和Delete之后,这一篇我们讲Get和Scan, 因为我发现这两个操作几乎是一样的过程,就像之前的Put和Delete一样,上一篇我本来只打算写Put的,结果发现Delete也可以走这个过程,所以就一起写了. Get 我们打开HRegionServer找到get方法.Get的方法处理分两种,设置了ClosestRowBefore和没有设置的,一般来讲,我们都是知道了明确的rowkey,不太会设置这个参数,它默认是false的. if (get.hasClosestRowBef…
从这一章开始要讲Region Server这块的了,但是在讲Region Server这块之前得讲一下StoreFile,否则后面的不好讲下去,这块是基础,Region Sever上面的操作,大部分都是基于它来进行的. HFile概述 HFile是HBase中实际存数据的文件,为HBase提供高效快速的数据访问.它是基于Hadoop的TFile,模仿Google Bigtable 架构中的SSTable格式.文件格式如下: 文件是变长的,唯一固定的块是File Info和Trailer,如图所示…
本文由  网易云发布. 作者:范欣欣 本篇文章仅限内部分享,如需转载,请联系网易获取授权. HFile是HBase存储数据的文件组织形式,参考BigTable的SSTable和Hadoop的TFile实现.从HBase开始到现在,HFile经历了三个版本,其中V2在0.92引入,V3在0.98引入.HFileV1版本的在实际使用过程中发现它占用内存多,HFile V2版本针对此进行了优化,HFile V3版本基本和V2版本相同,只是在cell层面添加了Tag数组的支持.鉴于此,本文主要针对V2版…