当前位置: 首页 > article >正文

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

目录

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_infooffice_info
Row Keynamecityphone
row_key1张三北京131*****
row_key11上海132*****
row_key2王五广州
row_key3深圳187*****
...
  • 存储数据稀疏,数据存储多维。
  • 不同行具有不同的列。
  • 数据存储整体有序,按照 RowKey 的字典序排列。

 HBase 物理存储结构

物理存储结构:

Row KeyColumn FamilyColumn QualifierTimestampTypeValue
row_key1personal_infonamet1Put张三
row_key1personal_infocityt2Put北京
row_key1personal_infophonet3Put131*****
row_key1personal_infophonet4Put177*****
  • 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 提供最终的底层数据存储服务。

http://www.kler.cn/a/283791.html

相关文章:

  • Microsoft 365 Exchange如何设置可信发件IP白名单
  • vue2+ element ui 集成pdfjs-dist
  • MySQL45讲 第二十讲 幻读是什么,幻读有什么问题?
  • Scala入门基础(17.1)Set集习题
  • 基于yolov8、yolov5的番茄成熟度检测识别系统(含UI界面、训练好的模型、Python代码、数据集)
  • LLMs之Code:Github Spark的简介、安装和使用方法、案例应用之详细攻略
  • ai免费生成ppt软件有哪些?我推荐秒出PPT
  • 基于detectron2框架的深度学习模型载入自定义数据集
  • 环境变量--永久 & 暂时
  • 设计模式 16 迭代器模式
  • OCI编程高级篇(十四) 直接路径装载设置字段信息
  • 数据结构与算法 第四天(串、数组、广义表)
  • HTTP分析
  • 高级java每日一道面试题-2024年8月30日-数据库篇-数据库的三范式是什么?
  • Java技术栈 —— Spark入门(三)之实时视频流
  • Dubbo如何传递链路追踪id?
  • 小琳AI课堂:使用ChatGPT API搭建系统(二)
  • innovus:如何让部分sink长到target insertion delay的长度
  • 关于OBI 在unity URP环境下使用的正确步骤
  • 网络编程(学习)2024.8.27
  • jQuery基础——选择器的补充方法——过滤方法、查找方法
  • python使用multiprocessing多进程通讯
  • 各种各样的正则表达式
  • 92. UE5 RPG 使用C++创建GE实现灼烧的负面效果
  • 达梦数据库-DM8 企业版安装指南
  • [java][代码] java中date格式化输出时间字符串