HBase分布式数据库最重要的就是存储数据,下面,从四个方面详细介绍HBase的物理存储。

  1.HBase表的数据按照行键RowKey的字典序进行排列,并且切分多个HRegion存储,存储方式如图1所示。

hbase数据是如何存储 hbase的数据存储_hbase

   图1 Region在行方向上的存储

  2.每个Region存储的数据是有限的,如果当Region增大到一个阀值(128)时,会被等分切成两个新的Region,切分方式如图2所示。

hbase数据是如何存储 hbase的数据存储_hbase_02

   图2 HRegion的切分

  3.一个HRegion Server上可以存储多个Region,但是每个Region只能被分布到一个HRegion Server上,分布方式如图3所示。

hbase数据是如何存储 hbase的数据存储_hbase_03

  图3 HRegion的分布

  4.MemStore中存储的是用户写入的数据,一旦MemStore存储达到阈值时,里面存储的数据就会被刷新到新生成的StoreFile中(底层是HFile),该文件是以HFile的格式存储到HDFS上,具体如图4所示。

hbase数据是如何存储 hbase的数据存储_数据_04

   图4 HBase表的存储