hbase中列簇和列_HBase中Region, store, storefile和列簇的关系

HBase 的 HRegionServer 在打开 Region 时创建 HRegion 对象,并为每个预定义的列簇创建 Store 实例。每个 Store 可拥有一个或多个 StoreFile,它们是 HFile 存储文件的轻量级包装器。Store 还包含一个 MemStore,而 HRegionServer 共享一个 HLog 实例。当在表中添加数据时,列簇在 HDFS 中对应一个目录,新数据会存储为 StoreFile。
摘要由CSDN通过智能技术生成

The HRegionServer opens the region and creates a corresponding HRegion object. When

the HRegion is opened it sets up a Store instance for each HColumnFamily for every table

as defined by the user beforehand. Each Store instance can, in turn, have one or more

StoreFile instances, which are lightweight wrappers around the actual storage file

called HFile. A Store also has a MemStore, and the HRegionServer a shared HLog in-stance。

原博客没有翻译,我这里大体翻译一下:RegionServer打开一个region的时候,会创建一个相应的HRegion对象。当这个HRegion被打开,他会为每一个表中的

每一个列簇创建一个Stroe实例,就想用户之前创建的那样。每一个Store实例相应地有一个或者多个StoreFile实例,StoreFile是对真正存储数据的文件(HFile)的

轻量级封装。一个Store还会有一个Memstore。每一个HRegionServer中的所有东西会共享一个HLog实例。

结合前面的图看就很清晰了。

hbase table中每个列簇都对应着region中的一个store,在hdfs系统中则对应着一个目录,如果列簇中尚无数据,怎该目录为空,也就是该store下还没有storefile。

1.house_hire_analysis 表中列簇total下无数据,另一张表fangyuan下有数据:

2.查看hdfs region下的内容

3. hbase console 如图:

4.put一条记录到house_hire_analysis中,并flush,flush将改动从memstore刷新到磁盘

5. hbase cosole storefile已经增加

6.新flush的kv根据策略会分别存到不同的storefiles中(最后compaction 会将这些小文件合并)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值