大数据 | HBase基本工作原理

这篇具有很好参考价值的文章主要介绍了大数据 | HBase基本工作原理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前文回顾:MapReduce基本原理

目录

📚HBase基本介绍

🐇HBase的设计目标和功能特点

🐇HBase在Hadoop中的生态环境

📚HBase的数据模型

🐇逻辑数据模型

🐇物理存储格式

📚HBase基本构架

📚HBase数据存储管理方法

🐇HBase子表数据存储与子表服务器

🐇HBase数据的访问

🐇HBase数据记录的查询定位


📚HBase基本介绍

HBase 是一种分布式、可扩展、支持海量数据存储的 NoSQL(not only SQL) 数据库。

🐇HBase的设计目标和功能特点

Hadoop主要是实现批量数据的处理,并且通过顺序方式访问数据。要查找数据必须搜索整个数据集,如果要进行随机读取数据,压根就不支持。即Hadoop仅适合存储大批量的数据,进行顺序化读取数据,并不支持随机读取数据操作。

  • 针对HDFS缺少结构化半结构化数据存储访问能力的缺陷,提供一个分布式数据管理系统,解决大规模的结构化和半结构化数据存储访问问题
  • 提供基于列存储模式的大数据表管理能力。可存储管理数十亿以上的数据记录,每个记录可包含百万以上的数据列。
  • HBase试图提供随机和实时的数据读写访问能力。
  • 具有高可扩展性、高可用性、容错处理能力、负载平衡能力、以及实时数据查询能力。

🐇HBase在Hadoop中的生态环境

  • 构建于分布式文件系统HDFS之上。HBase的数据(底层数据)实际上是放在HDFS里的。
  • 为上层应用提供结构化半结构化海量数据存储访问能力。

大数据 | HBase基本工作原理

  • 可与MapReduce协同工作,为MapReduce提供数据输入输出,以完成数据的并行化处理。

大数据 | HBase基本工作原理

📚HBase的数据模型

🐇逻辑数据模型

HBase是一个分布式多维表,表中的数据通过:一个行关键字(row key),一个列关键字(column family + column name),一个时间戳(time stamp)进行索引和查询定位。

  • region
    • 类比于关系型数据库的表概念。不同的是,HBase 定义表时只需要声明列族,不需要声明具体的列。这意味着,往 HBase 写入数据时,字段可以动态、按需指定。因此,和关系型数据库相比,HBase 能够轻松应对字段变更的场景。
  • 行关键字
    • HBase一张表可以有上亿行记录,每一行都是由一个行关键字来标识的。和关系型数据库中的主键不同,HBase的row key只能是一个字段而不可以是多个字段的组合。
    • HBase保证对所有行按照row key进行字典排序。也就是说,HBase保证相邻row key的行在存储时必然是相邻存放的。(row key是最大长度为64KB的byte数组,实际应用中长度一般为10bytes~100bytes。由于HBase只允许单字段的row key,因此在实际应用中需要时经常把多个字段组合成一个复合row key。)
  • 列族和列名
    • HBase每张表都有一个或者多个列族。列族必须在使用表之前定义。
    • 从本质来说,HBase的列族就是一个容器。HBase表中的每个列,都必须归属于某个列族。
    • 列名都以列族作为前缀,列如courses:historycourses:math都属于courses这个列族。
    • 在具体实现上,一张表中的不同列族是分开独立存放的。就是说,如果有两个列族family1和family2,那么在HDFS存储时,family1是一组文件,family2是另外一组文件,两者不能混合存储。
    • HBase的访问控制、磁盘和内存的使用统计等都是在列族层面进行的。
    • 在每个列族中,可以存放很多的列,而每行每列族中的列数量是可以不同的,数量可以很大。简单来说,可以认为每行每列族中保存的是一个Map映射表
  • 时间戳
    • HBase中每个存储单元都保存着同一份数据的多个版本。版本通过时间戳来索引
    • 每个存储单元中,不同版本的数据按照时间戳的大小倒序排序,即最新的数据排在最前面。这样在读取时,将先读取到最新的数据(时间戳可以由HBase(当数据写入时自动用当前系统时间)赋值,也可以由用户显示赋值。如果应用程序要避免数据版本冲突,可以自己生成具有唯一性的时间戳。)

大数据 | HBase基本工作原理

优秀网图

大数据 | HBase基本工作原理

🐇物理存储格式

  • 对于HBase来说,它根本不认为存在行列这样的概念,在实现时只认为存在键值对这样的概念。键值对的存储是排序的,行概念是通过相邻的键值对比较而构建出来的。
  • 也就是说,HBase在物理实现上并不存在传统数据库中的二维表概念。因此二维表中字段值的空洞,对于HBase来说在物理实现上并不存在,而不是所谓的值为null
  • 按列存储的稀疏行/列矩阵。物理存储格式上按逻辑模型中的行进行分割,并按照列族存储。

  • 值为空的列不予存储,节省存储空间。

优秀网图

大数据 | HBase基本工作原理

📚HBase基本构架

由一个MasterServer和一组子表数据区服务器RegionServer构成,分别存储逻辑大表中的部分数据

大数据 | HBase基本工作原理

  • HBase Master:Master是HBase集群的主控服务器,负责集群状态的管理维护。Master可以有多个,但只有一个是活跃的(负责人里的真正老大。
    • 为Region Server分配Region。
    • 负责Region Server的负载均衡。
    • 发现失效的Region Server并重新分配其上的Region。
    • HDFS上的垃圾文件回收。
    • 处理schema更新请求。
  • HBase Region Server:Region Server是HBase具体对外提供服务的进程。
    • Region Server维护Master分配给它的Region,处理对这些Region的I/O请求。
    • Region Server负责切分在运行过程中变得过大的Region。

大数据 | HBase基本工作原理

  • 当一个新的子表服务器注册时,主服务器让新的子表服务器装载子表。
  • 若主服务器与子表服务器连接超时,那么子表服务器将自动停止,并重新启动;而主服务器则假定该子表服务器已死机,将其上的数据转移至其它子表服务器,将其上的子表标注为空闲,并在重新启动后另行分配使用。

📚HBase数据存储管理方法

🐇HBase子表数据存储与子表服务器

大表被分为很多个子表(Region),每个子表存储在一个子表服务器RegionServer上

大数据 | HBase基本工作原理

每个子表中的数据区Region由很多个数据存储块Store构成,而每个Store数据块又由存放在内存中的memStore和存放在文件中的StoreFile构成。

  • 每个列族就存储在一个Store中。
  • StoreFile以Hfile格式保存在HDFS上。

大数据 | HBase基本工作原理

大数据 | HBase基本工作原理

  • 每个表一开始只有一个Region,随着数据不断插入表,Region不断增大。当一个Region增大到一个阈值(由参数hbase.hregion.max.filesize指定,但这个阈值其实不是限制每个Region大小的,而是限制每个Store大小的)的时候,原来的Region会被分裂成两个新的Region(从而保证Region不会过大)。
  • 随着表中的行数不断增多,Region的数目也会逐渐增多。
  • 多个region共享一个日志(串行)

大数据 | HBase基本工作原理

🐇HBase数据的访问

  • 当客户端需要进行数据更新时,先查到子表服务器,然后向子表提交数据更新请求。提交的数据并不直接存储到磁盘上的数据文件中,而是添加到一个基于内存的子表数据对象memStore中,当memStore中的数据达到一定大小时,系统将自动将数据写入到文件数据块StoreFile中。(就和抽血检测似的,抽满一板统一提交去检测)

  • 每个文件数据块StoreFile最后都写入到底层基于HDFS的文件中(Hfile)

  • 需要查询数据时,子表先查memStore。如果没有,则再查磁盘上的StoreFile。每个StoreFile都有类似B树的结构,允许进行快速的数据查询。StoreFile将定时压缩,多个压缩为一个。

  • 两个小的子表可以进行合并。

🐇HBase数据记录的查询定位

  • 描述所有子表和子表中数据块的元数据都存放在专门的元数据表中,并存储在特殊的子表中。子表元数据会不断增长,因此会使用多个子表来保存。
  • 所有元数据子表的元数据都保存在根子表中。主服务器会扫描根子表,从而得到所有的元数据子表位置,再进一步扫描这些元数据子表即可获得所寻找子表的位置。
  • 元数据子表采用三级索引结构

大数据 | HBase基本工作原理

根子表->用户表的元数据表->用户表

大数据 | HBase基本工作原理

  1. 按表的名字排序
  2. 大表里的行是按role-key作为代表
  3. 每个region里的第一行的role-key作为代表

参考教材:《深入理解大数据:大数据处理与编程实现》

参考博客:HBase简介文章来源地址https://www.toymoban.com/news/detail-437746.html

到了这里,关于大数据 | HBase基本工作原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • RabbitMQ基本概念和工作原理

    目录 RabbitMQ的基本概念 RabbitMQ的工作原理 RabbitMQ的交换机类型 RabbitMQ的实现原理 RabbitMQ的消息确认机制 RabbitMQ的消息持久化机制 RabbitMQ的事务 RabbitMQ的消息分发流程 RabbitMQ的消息分发机制 RabbitMQ实现RPC的机制 RabbitMQ是一个功能强大的开源消息队列中间件,具有许多基本概念。

    2024年02月09日
    浏览(33)
  • postman的工作原理与基本用法

           postman是一个用于调试HTTP请求的工具,有友好的界面助于分析、构造HTTP请求并分析响应数据。在实际工作中开发和测试基本都用这款工具进行接口调试。        postman的工作原理可以理解成一个浏览器,可模拟浏览器、APP原生等客户端向服务器发送接口请求,并获取

    2024年02月06日
    浏览(28)
  • HTTPS协议详解:基本概念与工作原理

    个人主页: insist--个人主页​​​​​​ 本文专栏 :网络基础——带你走进网络世界 本专栏会持续更新网络基础知识,希望大家多多支持,让我们一起探索这个神奇而广阔的网络世界。 目录 一、HTTPS协议的基本概念

    2024年02月10日
    浏览(30)
  • 【白话模电3】BJT基本工作原理

    目录 1、NPN和PNP 2、BJT的工作机理 3、从放大到饱和 4、通用三级管的参数 4.1电压参数 4.2电流参数 4.3损耗参数 参考资料: 上节我们知道PN结半导体具有单相导电的性能,但是由PN结构成的各种二极管(Diode)器件的单相导电性是没办法进行主动控制的,因此这类器件也称为被动

    2023年04月20日
    浏览(24)
  • HBase基础知识(一):HBase简介、HBase数据模型与基本架构

    HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。 逻辑上,HBase的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列。但从HBase的底层物理存储结构(K-V)来看,HBase更像是一个 multi-dimensionalmap 。 1.2.1HBase逻辑结构 字典序:按位比较。 下图是一张表

    2024年02月03日
    浏览(29)
  • DDoS缓解的基本工作原理和关键功能

    DDoS 缓解是指成功保护目标服务器或网络以抵御分布式拒绝服务 (DDoS) 攻击的过程,目标受害者可以使用专门设计的网络设备或基于云的保护服务缓解传入的威胁。   由于网络构成的基本逻辑,导致在线破坏者在拒绝服务的策略上占据优势,他们可以通过让您的业务离线几分

    2024年02月09日
    浏览(54)
  • 浅谈路由器基本结构与工作原理

    目录 一、结构 1.1 输入端口 1.2 交换结构 1.3 输出端口 1.4 路由选择处理器 二、输入端口处理和基于目的地转发 三、交换 四、输出端口处理 五、何时出现排队 5.1 输入排队 5.2 输出排队         下图是一个通用路由器体系结构的总体试图视图,其主要由输入端口、交换结构

    2024年03月19日
    浏览(45)
  • BERT模型基本理念、工作原理、配置讲解(图文解释)

    BERT是Birdirectional Encoder Representation from Transformers的缩写,意为多Transformer的双向编码器表示法,它是由谷歌发布的先进的嵌入模型,BERT是自然语言处理领域的一个重大突破,它在许多自然语言处理任务中取得了突出的成果,比如问答任务,文本生成,句子分类等等,BERT成功的

    2023年04月18日
    浏览(34)
  • 什么是MPLS,简述MPLS工作的基本原理?

    什么是MPLS: 1,MPLS (Multi-Protocol Label Switching) 即多协议标记交换。属于第三代网络架构,是新一代的IP高速骨干网络交换标准。MPLS的核心思想:边缘的路由,核心的交换。 2,MPLS整合了第三层路由和第二层转发为统一的系统,通过对数据包进行标记交换,从而缩短传送的延迟时

    2024年02月11日
    浏览(30)
  • Git简介与工作原理:了解Git的基本概念、版本控制系统和分布式版本控制的工作原理

    🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬

    2024年02月16日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包