Hbase的存储结构

1、 HBase逻辑结构

 2 、HBase物理存储结构

行键(RowKey):

是Byte array,行键是字节数组,任何字符串都可以作为行键;
在表中必须是唯一的而且必须存在的。Row Key是 按照字典序有序排列的
例如:row_key11 排列在row_key1和row_ley2之间。
所有对表的访问都要通过行键 (单个RowKey访问,或RowKey范围访问,或全表扫描)
HBase表中的每行数据都由一个RowKey和多个Column(列)组成,所以RowKey的设计十分重要。

 列(Column):

HBase中的每个列都由Column Family(列族)和Column Qualifier(列限定符)进行限定,
例如info:name,info:age。建表时,只需指明列族,而列限定符无需预先定义。每条记录可动态添加

 列族(ColumnFamily)简称CF:

CF必须在表定义时给出
每个CF可以有一个或多个列成员(ColumnQualifier),列成员不需要在表定义时给出,新的列族成员可以随后按需、动态加入
数据按CF分开存储,HBase所谓的列式存储就是根据CF分开存储(每个CF对应一个Store),这种设计非常适合于数据分析的情形

区域(Region):

HBase自动把表水平(按Row)划分成多个区域(region),每个region会保存一个表里面某段连续的数据
每个表一开始只有一个region,随着数据不断插入表,region不断增大,当增大到一个阀值的时候,region就会等分会两个新的region
当table中的行不断增多,就会有越来越多的region。这样一张完整的表被保存在多个Region 上。
Region是HBase中分布式存储和负载均衡的最小单元。
最小单元表示不同的Region可以分布在不同的HRegionServer上。但一个Region不会拆分到多个server上。
Region虽然是分布式存储的最小单元,但并不是存储的最小单元。
Region由一个或者多个Store组成,每个store保存一个columns family;每个Strore又由一个memStore和0至多个StoreFile组成
StoreFile包含HFile;memStore存储在内存中,StoreFile存储在HDFS上。

Store:

Store为HBase真正存储的文件,store最终存储到hdfs中

 单元格(Cell):

由{rowkey, column Family:column Qualifier, time Stamp} 唯一确定的单元。cell中的数据全部是字节码形式存贮。

时间戳(TimeStamp):

用于标识数据的不同版本(version),每条数据写入时,系统会自动为其加上该字段,其值为写入HBase的时间。

Name Space:

命名空间,类似于关系型数据库的database概念,每个命名空间下有多个表。
HBase两个自带的命名空间,分别是hbase和default,hbase中存放的是HBase内置的表,default表是用户默认使用的命名空间。

Table:

类似于关系型数据库的表概念。不同的是,HBase定义表时只需要声明列族即可,不需要声明具体的列。
这意味着,往HBase写入数据时,字段可以动态、按需指定。
因此,和关系型数据库相比,HBase能够轻松应对字段变更的场景。

 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值