大数据技术第四章总结

HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库

1.HBase与传统数据库的区别

数据类型:

  • 关系数据库采用关系模型,具有丰富的数据类型和存储方式
  • HBase采用了简单的数据模型

数据操作:

  • 关系数据库提供了丰富的操作
  • HBase提供的操作只有简单的插入、查询、删除、清空等

存储模式:

  • 关系数据库是基于行模式存储的
  • HBase是基于列存储的

数据索引:

  • 关系数据库针对不同列构建复杂的多个索引
  • HBase只有一个索引——行键

数据维护:

  • 关系数据库更新操作时当前值替换记录中原来的旧值
  • HBase更新操作时生成一个新的版本,旧的版本仍然保留(应该是用时间戳来存储的)

可伸缩性:

  • 关系数据库很难横向扩展,纵向扩展空间有限
  • HBase实现灵活的横向扩展,通过在集群中增加或者减少硬件数量来实现性能的伸缩

2.HBase数据模型

HBase实际上就是一个稀疏、多维、持久化存储的映射表,他采用行键、列族、列限定符和时间戳进行索引。

  • :HBase采用表来组织数据,由行和列组成,列划分为若干个列族
  • 行键:每个行由行键来标识。

访问表中的行只有三种方式

  • 通过单个行键访问
  • 通过一个行键的区间来访问
  • 全表扫描
  • 列族:列划分成为若干个列族,是基本的访问控制单元。
  • 列限定符:列族里的数据通过列限定符(或列)来定位。
  • 单元格:通过行键、列族和列限定符确定一个“单元格”。
  • 时间戳:每个单元格都保存着同一份数据的多个版本,通过时间戳索引。每次对一个单元格执行操作时,HBase都会隐式地自动生成并存储一个时间戳。

4009b303b7dc45c4b3be35d3ce439f93.jpg

 3.Region的概念

  • 根据行键的值对表中的行进行分区,每个行区间构成一个分区,被称为“Region”。(图4-5)
  • Region包含了位于某个值域区间内的所有数据,是负载均衡和数据分发的基本单位。这些Region会被分发到不同的Region服务器上。(注:Region服务器与Region不是一个东西,Region服务器中包含很多个Region,后面的图4-10)
  • 初始时,每个表只包含一个Region,随着数据的不断插入,Region会持续增大,当一个Region中包含的行数量达到一个阈值时,就会被自动等分成两个新的Region,随着表中行数量继续增加,就会分裂出越来越多Region。(图4-6)

1864c3c7392a4c72a41da09b75cf7bf4.jpg

 4.Region的定位

Region包含了位于某个值域区间内的所有数据,是负载均衡和数据分发的基本单位。

HBase的三层结构

2b3c2d529cb243ec855101cb3b364d32.jpg

5c5adc0e63e1482d914162b3b0183d90.jpg

客户端访问用户数据之前,需要首先访问ZooKeeper,获取-ROOT-表的位置信息,然后访问-ROOT-表,获得.META.表的信息,接着访问.META.表,找到所需的Region具体位于哪个Region服务器,最后才会到该Region 服务器读取数据。

5.HBase的功能组件

HBase的实现包括3个主要的功能组件:库函数(链接到每个客户端);一个Master主服务器(也称为Master);许多个Region服务器(每个Region服务器中都有一个Hlog文件和许多个Region)。

  • Region服务器负责存储和维护分配给自己的Region,处理来自客户端的读写请求。
  • Master主服务器负责管理和维护HBase表的分区信息,也负责维护Region服务器列表。

6.HBase系统架构

HBase的系统架构包括客户端ZooKeeper服务器Master主服务器Region服务器

9602819902784782bf15c1fece304575.jpg

 客户端

包含访问HBase 的接口,同时在缓存中维护着已经访问过的Region 位置信息,用来加快后续数据访问过程。

ZooKeeper服务器

  • 能够帮助维护当前的集群中机器的服务状态(Master主服务器就可以通过ZooKeeper服务器随时感知到各个Region 服务器的工作状态)
  • 帮助选举出一个Master 主服务器作为集群的总管,并保证在任何时刻总有唯一一个Master 主服务器在运行,这就避免了Master主服务器的"单点失效"问题。

Master

Master主服务器主要负责表和Region的管理工作。

  • 管理用户对表的增加、删除、修改、查询等操作。
  • 实现不同Region服务器之间的负载均衡。
  • 在Region分裂或合并后,负责重新调整Region的分布。
  • 对发生故障失效的Region服务器上的Region进行迁移。

Region服务器

是HBase中最核心的模块,负责维护分配给自己的Region,并响应用户的读写请求。

d953fa9852be455982958014b661aab9.jpg

7.HBase编程命令

4c849f0539ff473591527bccd0b578ea.jpg

39212492800245b181fc9f02b60b2303.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值