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

大数据技术之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 提供最终的底层数据存储服务。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 如何使用JMeter的JSON提取器解析JSON响应
  • 前后端交互的路径怎么来的?后端解决cors问题的一种方法
  • 【Python篇】Python 类和对象:详细讲解(中篇)
  • OpenCV杂项图像变换(1)自适应阈值处理函数adaptiveThreshold()的使用
  • Study Plan For Algorithms - Part18
  • (三)Kafka离线安装 - ZooKeeper开机自启
  • 音频如何低延时回声消除与降噪篇保姆级教程
  • Java算法之希尔排序(Shell Sort)
  • 深入理解Python中的属性(Property)及其用途
  • 代码随想录day1数组/字符串总结
  • java中的Opencv:Opencv简介与开发环境部署
  • win主机整改建议
  • 深度学习100问38:什么是阿达玛乘积
  • 已经git push,但上传的文件超过100MB
  • 【软考】【多媒体应用设计师】元数据与数字对象标识码
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • const let
  • emacs初体验
  • javascript数组去重/查找/插入/删除
  • opencv python Meanshift 和 Camshift
  • orm2 中文文档 3.1 模型属性
  • Python打包系统简单入门
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 限制Java线程池运行线程以及等待线程数量的策略
  • python最赚钱的4个方向,你最心动的是哪个?
  • # 利刃出鞘_Tomcat 核心原理解析(八)-- Tomcat 集群
  • #进阶:轻量级ORM框架Dapper的使用教程与原理详解
  • #图像处理
  • (2020)Java后端开发----(面试题和笔试题)
  • (9)STL算法之逆转旋转
  • (Note)C++中的继承方式
  • (补充):java各种进制、原码、反码、补码和文本、图像、音频在计算机中的存储方式
  • (十三)Maven插件解析运行机制
  • (新)网络工程师考点串讲与真题详解
  • (转载)Linux网络编程入门
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .net6Api后台+uniapp导出Excel
  • [20150321]索引空块的问题.txt
  • [240812] X-CMD 发布 v0.4.5:更新 gtb、cd、chat、hashdir 模块功能
  • [Android Pro] android 混淆文件project.properties和proguard-project.txt
  • [Angular] 笔记 8:list/detail 页面以及@Input
  • [c]扫雷
  • [Django学习]查询过滤器(lookup types)
  • [EFI]ASUS EX-B365M-V5 Gold G5400 CPU电脑 Hackintosh 黑苹果引导文件
  • [FT]chatglm2微调
  • [HNCTF 2022 WEEK2]easy_include 文件包含遇上nginx
  • [HTML]一文掌握
  • [J2ME]如何替换Google Map静态地图自带的Marker
  • [Latex] Riemann 问题中的激波,接触间断,膨胀波的 Tikz 绘图
  • [LeetCode] 626. 换座位
  • [LeetCode] 93. Restore IP Addresses 复原IP地址
  • [LeetCode]—Simplify Path 简化路径表达式