大数据技术之HBase简介(1)

目录

[HBase 简介](#HBase 简介)

[HBase 定义](#HBase 定义)

[HBase 数据模型](#HBase 数据模型)

[HBase 逻辑结构](#HBase 逻辑结构)

[HBase 物理存储结构](#HBase 物理存储结构)

[HBase 基本架构](#HBase 基本架构)


HBase 简介

HBase 定义

Apache HBase™ 是一种分布式、可扩展的 NoSQL 数据库,它基于 HDFS 进行数据存储。

HBase 数据模型

HBase 的设计理念源自 Google 的 BigTable 论文,采用类似的数据模型。

  • BigTable 数据模型简介:

    • Bigtable 是一个稀疏的、分布式的、持久的多维排序 map。
    • 映射由行键、列键和时间戳索引;映射中的每个值都是一个未解释的字节数组。
  • HBase 数据模型:

    • HBase 使用与 Bigtable 非常相似的数据模型。用户将数据行存储在带标签的表中。
    • 数据行具有可排序的键和任意数量的列。
    • 表存储稀疏,因此同一表中的行可以具有变化很大的列。
  • 关键特性:

    • 稀疏、分布式、多维、排序的映射。
    • 映射指代非关系型数据库的 key-value 结构。

HBase 逻辑结构

HBase 可以用于存储多种结构的数据,以下是以 JSON 格式表示的一个例子:

{
  "row_key1":{
    "personal_info":{
      "name":"zhangsan",
      "city":"北京",
      "phone":"131********"
    },
    "office_info":{
      "tel":"010-1111111",
      "address":"lzl"
    }
  },
  "row_key11":{
    "personal_info":{
      "city":"上海",
      "phone":"132********"
    },
    "office_info":{
      "tel":"010-1111111" 
    }
  },
  "row_key2":{
    ...
  }
}

逻辑结构示例:

personal_info office_info
Row Key name city phone
row_key1 张三 北京 131*****
row_key11 上海 132*****
row_key2 王五 广州
row_key3 深圳 187*****
...
  • 存储数据稀疏,数据存储多维。
  • 不同行具有不同的列。
  • 数据存储整体有序,按照 RowKey 的字典序排列。

HBase 物理存储结构

物理存储结构:

Row Key Column Family Column Qualifier Timestamp Type Value
row_key1 personal_info name t1 Put 张三
row_key1 personal_info city t2 Put 北京
row_key1 personal_info phone t3 Put 131*****
row_key1 personal_info phone t4 Put 177*****
  • Timestamp: 不同版本(version)的数据根据 timestamp 进行区分,读取数据默认读取最新版本。
  • StoreFile: 物理文件。
  • Type: 对于删除操作,其类型为 DeleteColumn。

数据模型

  • Name Space: 类似于关系型数据库的 database 概念,每个命名空间下有多个表。
  • Table: 类似于关系型数据库的表概念,定义表时只需要声明列族即可。
  • Row : HBase 表中的每行数据都由一个 RowKey 和多个 Column 组成。
  • Column: 每个列都由 Column Family(列族)和 Column Qualifier(列限定符)限定。
  • Time Stamp: 用于标识数据的不同版本。
  • Cell: 由{rowkey, column Family:column Qualifier, timestamp} 唯一确定的单元。

HBase 基本架构

  • Master: 主要进程,负责监控 RegionServer 状态,管理元数据变化。
  • RegionServer: 负责数据 cell 的处理。
  • Region: 表被分割成多个 Region,由 RegionServer 管理。
  • Zookeeper: 用于 Master 的高可用、记录 RegionServer 的部署信息等。
  • HDFS: 提供底层数据存储服务和支持。

架构角色:

  • Master: 实现类为 HMaster,负责监控集群中的所有 RegionServer 实例。
  • Region Server: 实现类为 HRegionServer,负责数据 cell 的处理。
  • Zookeeper: HBase 通过 Zookeeper 来做 Master 的高可用、记录 RegionServer 的部署信息。
  • HDFS: 为 Hbase 提供最终的底层数据存储服务。
相关推荐
问道飞鱼1 小时前
【知识科普】认识正则表达式
数据库·mysql·正则表达式
HaiFan.1 小时前
SpringBoot 事务
java·数据库·spring boot·sql·mysql
水根LP491 小时前
linux系统上SQLPLUS的重“大”发现
数据库·oracle
途途途途2 小时前
精选9个自动化任务的Python脚本精选
数据库·python·自动化
04Koi.2 小时前
Redis--常用数据结构和编码方式
数据库·redis·缓存
小刘鸭!2 小时前
Flink中并行度和slot的关系——任务和任务槽
大数据·flink
silver98862 小时前
mongodb和Cassandra
数据库
PersistJiao2 小时前
3.基于 Temporal 的 Couchbase 动态 SQL 执行场景
数据库·sql
上山的月3 小时前
MySQL -函数和约束
数据库·mysql
zhcf3 小时前
【MySQL】十三,关于MySQL的全文索引
数据库·mysql