HBase 基础结构

HBase 是一个分布式[集群]、可扩展[动态上下线]、支持海量存储的 NoSQL 数据库。相当于 BigTable,负责海量数据的存储。如果数据量小的时候不适合使用 HBase,因为生产上需要不断的切分和合并比较消耗资源。如果数据量比较大,可以做到几十亿条数据秒级查询。支持数据的增删改查,实现了 HDFS 的随机写操作。

一、数据模型

逻辑上,HBase 的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列。但从 HBase 的底层物理存储结构(K-V)来看,HBase 更像是一个 multi-dimensional map。下图的整个内容成为一张表。
在这里插入图片描述

【1】行键 RowKey: 是一张表中自动生成的唯一的、且有序的,按照“字典序”进行排序的主键;
【2】列族: 不同的列族放在不同的文件夹中,列族中的列可以有多个或者一个,列可以动态增加;
【3】Region切片: 按照 RowKey 进行切分,如上是按照3个 rowkey 进行划分的。一般是按照数据量进行划分,这样访问时能够提高效率;
【4】store: 实际存储数据的文件,存放在 HDSF。如上表中的数据是放在 6个 store 中;

二、HBase 物理存储结构

在这里插入图片描述

根据每一个列进行存储,例如张三:包含RowKey、ColumnFamily列族、ColumnQualifier列名、TimeStamp时间戳[实现HD 的随机写操作,完全由次属性决定,它优化最大的地方就是时间戳,该属性非常重要,window与Linux 一个用来操作一个用来存放时,需要两个操作系统的时间一定要相同,否则会出现很多问题]、Type类型[Put表示插入]、Value存放的值。当修改一条数据时,其实会添加一条数据与旧数据不同的是时间戳和value,此时,在获取数据的时候,它只会获取时间戳最大的那条数据。当删除一条数据时,也是添加一条数据与旧数据不同的是时间戳和Type,Type类型是 Delete。在获取的时候发现Delete类型的时间戳比 PUT的时间戳大,那就不返回数据。那么旧的数据对用户而言就是垃圾数据了,此时HBase还会存储着,但是最终它还是会从内存中将垃圾干掉的。是在后期表的分合操作的时候删除的。

三、数据模型

【1】Name Space: 命名空间,类似于关系型数据库的 database概念,每个命名空间下有多张表。HBase 有两个自带的命名空间,分别是 hbase 和 default。hbase 中存放的是 HBase 内置的表,default 表是用户默认使用的命名空间。
【2】Region: 类似于关系型数据库的表的概念。不同的是,HBase定义表时只需要声明列族即可,不需要声明具体的列。意味着,往 HBase中写入数据时,字段可以动态、按需指定。因此和关系型数据库相比,HBase能够轻松应对字段变更的场景。
【3】ROW: HBase 表中的每行数据由一个 RowKey和多个 Column(列)组成,数据是按照 RowKey的字典顺序存储,并且查询数据时只能根据 RowKey 进行检索,所以 RowKey的设计十分重要。
【4】Column: HBase 中的每个列都由 Column Family(列族)和 Column Qualifier(列限定符)进行限定,例如:info: name,info: age。建表时,只需要声明列族,而列限定名无需预先定义。
【5】TimeStamp: 用于表示数据的不同版本(version),每条数据写入时,如果不指定时间戳,系统会自动为期加上该字段,表示数据写入HBase 的时间。
【6】Cell: 由{RowKey,Column Family,Column Qualifier,TimeStamp}唯一确定的单元,cell中的数据是没有类型的,全部是字节码形式存储的。

四、HBase 基本架构

在这里插入图片描述

【1】Region切片需要分在 Region Server[多个,分布式的]上,Region 中包含多个 store[存储实际的数据],刚开始操作的store是在内存中的,最终会在一定数量或时间时会flush到磁盘 storefile;
【2】Region Server 的作用: Data:Get、Put、Delete[Update操作底层是新PUT了一条数据,时间戳和 value 会发生变化,Delete 也是 Put了一条数据,Type是Delete];Region:SplitRegion、CompactRegion。作为 Region 的管理者;
【3】Master: 作为 HBase操作的入口,依赖于ZK来管理集群,HBase 中的操作非常多,因此会将一些任务分配给ZK,当 Master挂掉之后,对数据的增删改查时没有问题的,但是对表级别的增删改查是不能完成的。Master类似于DDL。ZK类似于DML。作用:Table 的 Create,Delete,Alter;RegionServer:分配 Region 到每个 RegionServer,监控每个 RegionServer 的状态,负载均衡和故障转移;
【4】ZK: HBase 通过 ZK来做master的高可用,RegionServer的监控、元数据的入口以及集群配置的维护等工作;
【5】HDFS: HDFS 为 HBase提供最终的底层数据存储服务,同时为 HBase提供高可用的支持;

  • 124
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 76
    评论
HBase和Hive是两个不同的工具,用于不同的目的。 HBase是一个分布式、面向列的存储系统,适用于实时读写和随机访问超大规模数据集。它是构建在Hadoop生态系统之上的一部分,可以与Hadoop文件系统(HDFS)集成使用,提供对数据的随机实时读写访问。HBase使用列式存储,主要用于大数据领域。 而Hive是一个数据仓库基础架构工具,用于将结构化和半结构化数据映射到Hadoop上以进行查询和分析。它提供了类似于SQL的查询语言,称为HiveQL,使用户可以使用类似于关系数据库的查询语法来查询存储在Hadoop上的数据。Hive使用Hadoop的分布式存储和计算能力,将查询转换为MapReduce作业来处理数据。与HBase相比,Hive更适合用于批量处理和分析大规模数据。 因此,HBase和Hive是两个不同的工具,用于不同的数据处理和查询需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Hbase/Hive知识概要](https://blog.csdn.net/TU_JCN/article/details/125667427)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [图解大数据 | Hive与HBase详解@海量数据库查询](https://blog.csdn.net/ShowMeAI/article/details/123360078)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 76
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿进阶

千言万语都不及一句“谢谢”

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值