hbase的体系架构包括_hbase数据模型

hbase的体系架构包括_hbase数据模型一、什么是HBase? HBase是一个基于HDFS之上的分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“BigTable大表”,即:把所有的数据存入一张表中

【赵强老师】HBase的体系架构

hbase的体系架构包括_hbase数据模型

一、什么是HBase?

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

二、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的表结构

hbase的体系架构包括_hbase数据模型

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

HBase数据模型

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

hbase的体系架构包括_hbase数据模型

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/5982.html

(0)
上一篇 2023-04-19
下一篇 2023-04-19

相关推荐

  • MySQL 操作数据库、数据表「建议收藏」

    MySQL 操作数据库、数据表「建议收藏」通过mysql-client连接到mysql-server,sql语句要以分号结尾,这样按Enter才会执行sql语句。 mysql关键字不区分大小写 字符串、时间日期类型的值要引起来 数据库操作 s

    2023-02-03
    151
  • Zookeeper分布式集群搭建[通俗易懂]

    Zookeeper分布式集群搭建[通俗易懂]文中Zookeeper分布式集群搭建在Linux CentOS7系统之上。搭建大数据分布式集群,不建议使用root用户直接操作,故文中使用bigdata用户进行集群的搭建。 一、环境准备 软件 版本

    2022-12-20
    190
  • 如何在 Python 中精确保留小数点后的数值?

    如何在 Python 中精确保留小数点后的数值?在 Python 中,浮点数的精度有限,会导致小数点后的数字被舍去或四舍五入。

    2024-07-13
    67
  • Python实现主函数示例

    Python实现主函数示例Python是一门流行且功能强大的解释型编程语言,被广泛用于开发Web应用、数据分析、人工智能、机器学习等领域。Python是一门高级语言,能够让编程变得简单易懂。主函数是Python程序的一个重要组成部分,本文将对Python实现主函数示例进行详细阐述。

    2023-12-17
    93
  • Python Widget Digit,打造高效数字化界面

    Python Widget Digit,打造高效数字化界面在现代社会,数字化已成为各行各业的趋势,需要我们处理数字化信息的频率越来越高。数字处理和显示是我们日常工作的重点,因此,有一个高效的数字化界面是非常重要的。Python Widget Digit能够帮助我们快速、轻松地构建一个高效的数字化界面。

    2024-04-03
    69
  • 用Python的os.path.basename函数获取文件名

    用Python的os.path.basename函数获取文件名 在Python中,我们可以使用os.path.basename函数获取文件路径中的文件名部分,该函数用于获取文件的基本名称(字符串中最后一个反斜杠以后的部分),并将其作为字符串返回。如果路径以反斜杠结尾,则返回前一个部分。该函数可以应用于多种操作系统,如Windows,Linux,Unix等。使用该函数时,需要导入os模块。

    2023-12-10
    113
  • 数据库数据迁移方案_质量管理工作能迁移吗

    数据库数据迁移方案_质量管理工作能迁移吗公司的数据库规模达到一定数量后,DB迁移、主从切换便是DBA经常性工作之一。但是 DB迁移影响较大,牵涉Team较多,特别是当公司的技术架构不太完善时,一份详细的迁移List很有必要。下面的List是

    2023-04-17
    162
  • mysql添加索引(建表之后)「建议收藏」

    mysql添加索引(建表之后)「建议收藏」一.使用ALTER TABLE语句创建索引 语法如下: 其中包括普通索引、UNIQUE索引和PRIMARY KEY索引3种创建索引的格式,table_name是要增加索引的表名,column_list

    2023-01-25
    163

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注