【大数据精讲】HBase基本概念与读写流程

发布时间:2024年01月23日

目录

基本概念

概念

数据模型

Name Space命名空间

Table

Row

Column

Time Stamp

Cell

逻辑结构

json

物理存储结构

基础架构

Meta表架构

RegionServer架构

??写流程

??读流程


基本概念

Apache HBase – Apache HBase? Home

" This project's goal is the hosting of very large tables -- billions of rows X millions of columns --"

概念

  • 海量数据:10亿行、100万列
  • 非关系型数据库:kv结构
  • 稀疏的:不像关系型数据库表,即使没有数据也要留空
  • 分布式的
  • 持久的
  • 多维的:hashmap是单维度的
  • 排序的:排序后可以使用比如二分查找
  • map映射:k:v
    • key:行键、列键和时间戳索引作为key
    • value:未解释的字节数组,未解释指即经过序列化的

HBase使用与BigTable非常相似的数据模型,用户将数据行存储在带标签的表中。数据行具有可排序的键和任意数量的列。该表存储稀疏,因此如果用户喜欢,同一表中的行可以具有疯狂变化的列。

数据模型

Name Space命名空间

类似数据库概念,其下有多个表,自带两个:hbase和default

  • hbase:系统使用,存放内置表,不要操作
  • default:用户默认使用的

Table

hbase在定义表时只需要声明列族即可,不需要声明具体的列。数据存储是稀疏的,可以动态、按需指定,可以轻松应对字段变更

Row

行由RowKey和多个Column组成的,数据是按照RowKey字典顺序存储的,查询时只能按照RowKey进行检索,所以RowKey的设计十分重要。

hbase不能写sql,比如where name=xx不行,没这个功能,只能按rowkey读取,这也是hbase不太好用的原因。

Column

ColumnFamily列族+ColumnQualifier列名组成。

如info:name,info:age

建表时只需要指明列族,而列名无需预先定义。

Time Stamp

用来标记版本

Cell

即k:v模型,key由{rowkey,column family: column qualifier, timestamp}组成来,唯一确定的单元。cell中的数据全部是字节码形式存储。

cell针对的是底层存储StoreFile而言的,指的是底层存储的一行数据,其他是针对表而言的

逻辑结构

json

  • 列族:column family
  • 列:column
  • row key:行号,用来排序和整理数据,特点:一定是按照字典序排序好的,字典序:row_key11在row_key2前面

横向拆分:按行拆分region

竖向拆分:按列族拆分为store

物理存储结构

物理存储结构即为数据映射关系,而在概念视图的空单元格,底层实际根本不存储。

  • Timestamp
    • 时间戳用于标记版本
    • 不同版本version的数据根据timestamp进行区分,读取数据默认读取最新的版本
    • HDFS存储有一个标志性的特点:不能够修改数据
    • 在不能改数据的基础上怎么实现改,以时间戳作为版本
  • Type:标记,写入Put 删除Delete
    • 对于删除操作,其类型为DeleteColumn

基础架构

Meta表架构

警告:不要修改

System Table:hbase:meta

表名:[table],[region start key],[region id]

第一列:info:regioninfo 为region信息,存储一个HRegionInfo对象

第二列:info:server 当前region所处的RegionServer信息,包含端口号

第三列:info:serverstartcode 当前region被分到RegionServer的起始时间

如果一个表处于切分的过程中,即region切分,还会多出两列info:splitA和info:splitB,存储值也是HRegionInfo对象,拆分结束后,删除这两列

RegionServer架构

??写流程

master只负责修改和写hbase/meta表,读找zk就可以了,zk会告诉你表在哪

仅能保证单文件HFile/storeFile有序

??读流程

hash有个特点:说没有一定没有,说有不一定有

文章来源:https://blog.csdn.net/weixin_40035038/article/details/135764049
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。