大数据技术之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 提供最终的底层数据存储服务。
相关推荐
风哥2号3 小时前
数据库教程FGMT28‑Windows‑MySQL5.7‑8.0‑8.4-9.7安装配置
数据库·mysql
Q26433650235 小时前
【有源码】基于 Hadoop 生态的化妆品销售数据存储分析与可视化 面向化妆品行业的用户画像构建与销售机会识别研究
大数据·hadoop·python·机器学习·spark·毕业设计·课程设计
2601_9622186110 小时前
万象生鲜系统业财一体化底层打通技术自动生成经营账单
大数据·数据库·人工智能·python·算法
李高钢11 小时前
Python FastAPI 框架入门:从零搭建你的第一个高性能 API 服务
数据库·python·fastapi
Easy_API12 小时前
从“有多少卡“到“卖多少 Token“:算力的标尺正在换
大数据·人工智能·深度学习
移动云开发者联盟12 小时前
中国移动发布全链条算力服务成果
大数据
yuzhiboyouye13 小时前
那xml对应的sql语法,列举一下
xml·数据库·sql
晓窗科技13 小时前
口碑好的AI基座服务商
大数据·人工智能·python
和裕13 小时前
蜂窝板 vs 七层瓦楞重型纸箱:大件工业设备运输性能与成本全对比
大数据·运维·网络·人工智能·算法
. . . . .13 小时前
乐观锁 vs 悲观锁
数据库·sql