【赵渝强老师】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 HMaster,Region server,ZooKeeper。

  • *HBase HMaster负责Region的分配及数据库的创建和删除等操作。具体来说,HMaster的职责包括:

  • HMaster负责region的分配。

  • 调控Region server的工作
  • 在集群启动的时候分配region,根据恢复服务或者负载均衡的需要重新分配region。
  • 监控集群中的Region server的工作状态。
  • 管理数据库。提供创建,删除或者更新表格的接口。

  • *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的职责包含:

  • 维护HBase服务器是否存活

  • 监控HBase服务器是否可访问的状态
  • 提供服务器故障/宕机的通知
  • 同时还使用一致性算法来保证服务器之间的同步。
  • 同时也负责Master选举的工作。
  • 需要注意的是要保证良好的一致性及顺利的Master选举,集群中的服务器数目必须是奇数,例如三台或五台。

三、HBase的表结构

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

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

HBase数据模型

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

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

Original: https://www.cnblogs.com/collen7788/p/15089050.html
Author: 赵渝强老师
Title: 【赵渝强老师】HBase的体系架构

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/713281/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 基于AudioQueue实现音频的录制和播放

    基于AudioQueue实现音频的录制和播放 @ 基于AudioQueue实现音频的录制和播放 背景 总览 Audio Queue 架构 AudioQueueBuffer数据结构 …

    技术杂谈 2023年7月25日
    074
  • 8月26号全球技术标准更新

    1.除只测试场强的标准产品,如15.247或者15.231等产品,可以不提供天线增益的天线报告或者天线技术规格书。 其他FCC part 15C(如15.247….),…

    技术杂谈 2023年6月21日
    069
  • 重新审视演进式设计

    说起来,所谓Evolutionary Design已经是老生常谈了。早在2004年,Martin Fowler在文章Is Design Dead中就深刻地比较了计划式设计与演进式设…

    技术杂谈 2023年5月31日
    090
  • django 1.11 向 django2 django3 过渡的 注意点

    1 django 1.11.11 的路径 为 url开头,集合了字符串匹配及 正则匹配 2 django 1.11.11 需要使用pymysql ,需要在 项目的 init.py …

    技术杂谈 2023年7月10日
    059
  • Django的ModelAdmin自带

    需要自定义数据表中哪些字段可以显示,哪些字段可以编辑,并对数据表中的条目进行排序,同时定义过滤选项。Django的ModelAdmin自带的list_display, list_f…

    技术杂谈 2023年7月10日
    075
  • cocos 防坑总结

    博客园 :当前访问的博文已被密码保护 请输入阅读密码: Original: https://www.cnblogs.com/xiaohuochai/p/10013271.htmlA…

    技术杂谈 2023年5月30日
    087
  • php: 单下划线函数意义

    待完善参考 posted @2022-09-21 09:42 CodeWater 阅读(24 ) 评论() 编辑 Original: https://www.cnblogs.com…

    技术杂谈 2023年7月25日
    078
  • 《商业模式新生代》笔记

    一、组织商业模式画布 为便于理解现有的商业模式,你可以问自己这样两个问题。 我们的客户是谁? 客户需要我们完成哪些工作? 商业模式的九大组成模块 客户群体(Customers) 客…

    技术杂谈 2023年5月31日
    0116
  • 买车险

    车险到期,电话预约周一把保单送到我公司,我刷卡付款。 周一上午8:25分,我还在上班途中,接到送单员电话说:我已经在你公司了,你什么时候到?我回答说:我上周在电话中说上班时间都可以…

    技术杂谈 2023年6月1日
    096
  • linux基本命令

    cd 切换文件夹 cd /home 绝对路径 以包目录开头 cd admin 相对路径 不以包目录开头 cd .. 返回上级目录 cd ~ 到自己的家目录 /home/admin …

    技术杂谈 2023年7月24日
    072
  • Java8 函数式【1】:一文读懂逆变

    Java8 函数式【1】:一文读懂逆变 禁止转载 pure function 协变 逆变 Java8 引入了函数式接口,从此方法传参可以传递函数了,有人说:不就是传一个方法吗,语法…

    技术杂谈 2023年7月24日
    080
  • 如何在用户离开页面时可靠地发送 HTTP 请求

    如何在用户离开页面时可靠地发送 HTTP 请求 有几次,我需要发送一个请求,其中包含一些数据,以便在用户执行导航到其他页面或提交表单之类的操作时进行记录。请考虑以下人为示例:单击链…

    技术杂谈 2023年5月31日
    099
  • 如何进行项目开发?

    企业的web项目类型 商城 1.1 B2C 直销商城 商家与会员直接交易 ( Business To Customer ) 1.2 B2B 批发商城 商家与商家直接交易 1.3 B…

    技术杂谈 2023年6月21日
    0105
  • numpy中矩阵的逆,求解,特征值,特征向量

    逆:numpy.linalg.inv() 求矩阵的逆import numpy as npa=np.mat(‘1 0;0 1’)#生成一个矩阵print(ty…

    技术杂谈 2023年7月24日
    078
  • 在Windows下使用Nodist进行Node版本控制

    完全卸载Node.js 首先卸载Node.js应用程序 确认在C:\Program Files中没有Nodejs目录 确认在C:\Program Files (x86)没有Node…

    技术杂谈 2023年5月31日
    099
  • Node.js模板引擎的深入探讨

    第一轮排除 在上次node模板引擎简单比較的文章里。事实上已经有个简单的筛选了。总结成规则应该是这种: 最后在 Template Chooser 上依据条件选择下来,就剩这些了: …

    技术杂谈 2023年6月1日
    083
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球