关于hbase:赵强老师HBase的体系架构

38次阅读

共计 1554 个字符,预计需要花费 4 分钟才能阅读完成。

一、什么是 HBase?

HBase 是一个基于 HDFS 之上的分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文“BigTable 大表”,即:把所有的数据存入一张表中。就像 Bigtable 利用了 Google 文件系统(File System)所提供的分布式数据存储一样,HBase 在 Hadoop 之上提供了相似于 Bigtable 的能力。HBase 是 Apache 的 Hadoop 我的项目的子项目。HBase 不同于个别的关系数据库,它是一个适宜于非结构化数据存储的数据库。另一个不同的是 HBase 基于列的而不是基于行的模式。

二、HBase 的体系架构

HBase 是由三种类型的服务器以主从模式形成的。这三种服务器别离是:HBase HMaster,Region server,ZooKeeper。

  • HBase HMaster 负责 Region 的调配及数据库的创立和删除等操作。具体来说,HMaster 的职责包含:
  1. HMaster 负责 region 的调配。
  2. 调控 Region server 的工作
  3. 在集群启动的时候调配 region,依据复原服务或者负载平衡的须要重新分配 region。
  4. 监控集群中的 Region server 的工作状态。
  5. 治理数据库。提供创立,删除或者更新表格的接口。
  • Region server 负责数据的读写服务。用户通过沟通 Region server 来实现对数据的拜访。

具体来说,RegionServer 上存在若干个 Region。HBase 中的表是依据 row key 的值程度宰割成所谓的 region 的。一个 region 蕴含表中所有 row key 位于 region 的起始键值和完结键值之间的行。每一个 region 的默认大小为 1GB。集群中负责管理 Region 的结点叫做 Region server。Region server 负责数据的读写。每一个 Region server 大概能够治理 1000 个 region。

  • ZooKeeper 负责保护集群的状态(某台服务器是否在线,服务器之间数据的同步操作及 master 的选举等)。HBase 中 ZooKeeper 的职责蕴含:
  1. 保护 HBase 服务器是否存活
  2. 监控 HBase 服务器是否可拜访的状态
  3. 提供服务器故障 / 宕机的告诉
  4. 同时还应用一致性算法来保障服务器之间的同步。
  5. 同时也负责 Master 选举的工作。
  6. 须要留神的是要保障良好的一致性及顺利的 Master 选举,集群中的服务器数目必须是奇数,例如三台或五台。

三、HBase 的表构造

每一行有一个 RowKey 用于惟一地标识和定位行,各行数据按 RowKey 的字典序排列。其中 ImployeeBasicInfoCLF 和 DetailInfoCLF 是两个列族,列族下又有多个具体列。(员工根本信息列族:姓名、年龄。详细信息列族:薪水、角色)。

HBase 数据模型

  • 命名空间:命名空间是对表的逻辑分组,不同的命名空间相似于关系型数据库中的不同的 Database 数据库。利用命名空间,在多租户场景下可做到更好的资源和数据隔离。
  • 表:对应于关系型数据库中的一张张表,HBase 以“表”为单位组织数据,表由多行组成。
  • 行:由一个 RowKey 和多个列族组成,一个行有一个 RowKey,用来惟一标示。
  • 列族:每一行由若干列族组成,每个列族下可蕴含多个列,如上 ImployeeBasicInfoCLF 和 DetailInfoCLF 即是两个列族。列族是列共性的一些体现。留神:物理上,同一列族的数据存储在一起的。
  • 列限定符:列由列族和列限定符惟一指定,像如上的 name、age 即是 ImployeeBasicInfoCLF 列族的列限定符。
  • 单元格:单元格由 RowKey、列族、列限定符惟一定位,单元格之中寄存一个值(Value)和一个版本号。
  • 工夫戳:单元格内不同版本的值按工夫倒序排列,最新的数据排在最后面

正文完
 0