分布式数据库HBase

1.HBase 简介

1.1 HBase是BigTable的开源实现,BigTable是架构在分布式文件系统GFS之上的。

1.2 HBase的优点

  • 高可靠性;
  • 高性能;
  • 面向列;
  • 可伸缩;
    HBase是一个分布式数据库,可以用来存储非结构化和半结构化的松散数据。

1.3 HBase和BigTable底层技术的对应关系
在这里插入图片描述
1.4 HBase主要是为了满足大数据实时处理需求而开发设计的。传统关系型数据的随着数据量的增加,数据库可扩展性差,数据库效率低。

1.5 HBase数据库和传统关系型数据库的联系与区别

  • 数据类型方面:传统数据类型多,是用的关系数据模型,而HBase只有Byte类型。
  • 数据操作方面:HBase 所有数据存储在一张表中。
  • 存储模式:关系型数据库基于行模式存储,而HBase基于列存储。
  • 数据索引:关系数据库有多级索引,可以构建非常复杂的索引,而HBase基于列索引。
  • 数据维护:关系型数据库新版本的数据或覆盖旧版本的数据,而HBase不会覆盖,HBase数据具有一个时间戳,超时就删除旧数据。
  • 可伸缩性:HBase可扩展性好,水平扩展性好。

1.6 HBase接口:通过Java API可以访问和提供的SQL类型接口访问。
在这里插入图片描述

2.HBase 数据模型

2.1 HBase是一个稀疏的多维度的排序的映射表。
在这里插入图片描述

  • 列限定符(列)
  • 每个值都是未经解释的字符串也就是Bytes数组
  • 一个行可以有一个行键和任意多个列;
  • 列族是HBase当中一个非常核心的概念。可以对列族进行动态增加
  • HBase保存旧数据,具有时间戳,新旧数据保存在一个单元格中,通过时间戳来区分。

2.2 HBase数据的概念视图
在这里插入图片描述
HBase是一个稀疏表,很多单元可是空的。

2.3 HBase数据的物理视图
在这里插入图片描述

2.4 数据坐标
HBase可以视作一个键值数据库
在这里插入图片描述

键值对数据如下
在这里插入图片描述
2.5 行式存储结构和列式存储结构

  • 面向行存储的传统关系型数据库
    • 缺点:对于分析某一列数据,需要扫描数据库的每一行取出该列数据,效率低,代价高。
  • 面向列存储的数据库:按列存储。
    在这里插入图片描述

3.HBase 的实现原理

3.1 HBase的功能组件
在这里插入图片描述

  • 库函数
  • Master服务器
    在这里插入图片描述
  • Region服务器
    在这里插入图片描述

3.2 两个核心概念表和Region
一个HBase表被划分为多个Region,随着Region逐渐增大,一个Region分裂为多个Region(物理存储位置不变)。
在这里插入图片描述
在这里插入图片描述

3.3 Region定位
HBase设计了三层结构来实现Region的寻址和定位。

  • 构建元数据表,用于存储Region的ID和Region服务器的ID,构建这样的映射表,称为.META.表。
  • 随着Region的增多,映射表增大,意味着映射表需要增加,最后构成一个Root表,Root表不允许被分裂。
    在这里插入图片描述

HBase的三层结构各层次的作用
在这里插入图片描述

  • 可以计算得出,该三层架构可以存储的数据很大,远远满足企业的需求,所以这种设计合理。
  • 为了加速寻址,客户端会缓存位置信息,同时,需要解决缓存失效问题。
    • 采用惰性解决机制,若发现缓存失效,才把最新的Region ID在缓存下来。

4.HBase运行机制

  • HBase的系统架构
    在这里插入图片描述
    在这里插入图片描述
    Zookeeper服务器管理整个集群,保证集群中只有一个HMaster在运行,其他的master备用。

    • Master(主服务器):管理如下任务。
      在这里插入图片描述
  • Region服务器的工作原理

    在这里插入图片描述

    • 多个Region服务器构成一个Region服务器集群,公用一个HLog。
  • Store的工作原理

    • 用户写数据过程:分配到一个Region服务器上去执行。
      在这里插入图片描述
    • 读数据过程
      在这里插入图片描述
    • 缓存的刷新
      在这里插入图片描述
    • StoreFile的合并:StoreFile数量达到一定阈值后,引发合并操作。
      在这里插入图片描述
    • StoreFile的合并与分裂:当StoreFile越来越大时,又会引发分裂操作,一个大的Region就会分为两个Region。
      在这里插入图片描述
  • HLog的工作原理:出现故障时,通过日志来恢复数据。
    在这里插入图片描述

    • Zookeeper集群检测到服务器故障,并告诉master,master就把故障机上的HLog复制过来,把HLog中属于各个Region服务器的都拆分出来,分给其他Region服务器,然后该服务器根据日志恢复数据。
    • HLog公用,对数据的恢复提供了很大的便利。
      在这里插入图片描述

5.HBase编程

5.1 HBase是建立在hadoop 上的,因此需要先启动hadoop,再启动HBase;关闭时,先关闭HBase,在关闭hadoop。

5.2 可以通过HBase自带的Zookeeper组价来为HBase提供服务。规模较大的集群建议安装Zookeeper组件来提供服务。

5.3 HBase 常用shell命令

  • creat 表名,列名1,列名2,列名3:创建表
  • list :查看创建的表
  • 通过put命令添加数据
  • 通过scan查看添加的信息
  • 通过get,通过思维信息来定位数据值
  • 删除表:先使表失效 disable 表名,然后drop 表名删除表。
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

秘境之眼

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值