网站大量收购独家精品文档,联系QQ:2885784924

分布式数据库HBase PPT课件单元3 HBase的原理与架构.pptx

分布式数据库HBase PPT课件单元3 HBase的原理与架构.pptx

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

单元3HBase的原理与架构

1HBase的架构目录HBase的模型2HBase的读写流程3

HBase的分布式架构优势HBase作为一种分布式数据库,其架构设计使其在海量数据的快速存储和随机访问方面具有显著优势。通过数据副本机制和分区机制,HBase能够轻松实现在线扩容、缩容和数据容灾,从而成为大数据领域中Key-Value数据结构存储的常用方案之一。此外,HBase还能够通过分布式集群读写海量数据,这是传统数据库难以实现的。

本章学习目标本章旨在帮助读者掌握HBase的数据模型、架构和读写流程。具体学习目标包括:掌握HBase数据模型及核心知识。理解HBase架构的原理。010204理解HBase的读写流程。03

HBase的逻辑模型HBase的逻辑模型以列为基本单位,多列构成一行。每行拥有唯一的行键(RowKey),相同行键的插入操作被视为对同一行的操作,多次插入操作实际上是对该行数据的更新操作。HBase表包含多个行,每行包含多个列,列中的值可以有多个版本,每个版本的值称为一个单元格,每个单元格存储的是该列不同时间的值。

HBase的数据模型01”HBase实际上是一个稀疏、多维、持久化存储的映射表,采用行键(RowKey)、列簇(ColumnFamily)、列限定符(ColumnQualifier)和时间戳(Timestamp)进行索引。每个值都由未经解释的字节组成byte[],没有数据类型。用户在表中存储数据时,每一行都有一个可排序的行键和任意多的列。列簇支持动态扩展,用户可以轻松地添加一个列簇或列,无需预先定义列的数量和类型。由于同一张表里的每一行数据都可以有截然不同的列,对于整个映射表的每行数据而言,有些列的值可以是空的,因此HBase是稀疏的。

HBase的数据模型2025/5/120102表HBase是一种列式存储的分布式数据库,其核心概念是表(Table)。与传统关系型数据库一样,HBase的表也是由行和列组成的,但HBase的同一列可以存储不同时刻的值,多个列可以组成一个列簇(ColumnFamily),这种组织形式主要是出于对HBase存取性能的考虑。行键每个HBase表中只能有一个行键,类似于主键。由于RowKey是HBase表的唯一标识,HBase表中的记录是按照RowKey的字典序排列的,因此,RowKey的设计非常重要。在HBase中,为了高效地检索数据,需要设计良好的RowKey来提高查询性能。因为RowKey会被冗余存储,所以长度不宜过长,否则既会占用大量的存储空间,又会降低检索效率。RowKey应该尽量均匀分布,避免产生热点问题(即大量用户访问集中在一个或极少数节点,导致单台节点超出自身承受能力)。另外,还需要保证RowKey的唯一性。数据的存储规则是相近的数据存储在一起。例如,RowKey的格式为、、和的网站名称时,可以对网站名称反转后再进行存储,反转后为com.cqyti.www、com.cqyti.sxy、com.cqyti.dsj和com.cqyti.zngc。这样,所有com.cqyti域名将会存储在一起,避免子域名(即www、sxy、dsj、zngc)分散在各处。

HBase的数据模型2025/5/120304列簇HBase表中的每个列都归属于某个列簇,一个列簇中的所有列成员有着相同的前缀。例如,列anchor:和anchor:my.look.ca都是列簇anchor的成员。列簇是表的schema的一部分,必须在使用表之前定义列簇,但列却不是必需的,写数据的时候可以动态加入。一般将经常一起查询的列放在一个列簇中,合理划分列簇将减少查询时加载到缓存的数据,提高查询效率。由于跨列簇访问非常低效,因此不应有太多的列簇。单元格HBase中通过RowKey和Column确定的存储单元称为单元格(Cell)。每个单元格都保存着同一份数据的多个版本。

HBase的数据模型2025/5/120504时间戳在HBase表中,通过行键、列簇和列名确定一个单元格。单元格中存储的数据没有数据类型,被视为byte[]字节数组。单元格中保存的数据的每个版本对应一个不同的时间戳,每次对一个单元格执行操作(新建、修改、删除)时,HBase都将隐式地自动生成并存储一个时间戳。时间戳一般是64位整型数据,可以由用户自己赋值(自己生成唯一时间戳可以避免应用程序中出现数据版本冲突),也可以由HBase在数据写入时自动赋值。一个单元格的不同版本根据时间戳进行降序存储。因此,最新版本的数据可以被优先读取,通常将记录每次操作数据的时间戳记作数据的版本号。

HBase的物理模型虽然在逻辑模型中表可以被看作一个稀疏的行集合,但在物理层面,表是按列簇分开存储的。HBase的列是按列簇分组的,HFile是面向

文档评论(0)

allen734901 + 关注
实名认证
内容提供者

副教授持证人

知识共享

领域认证该用户于2024年11月14日上传了副教授

1亿VIP精品文档

相关文档