• HBase-基本概念


    目录

    HBase定义

    HBase的逻辑结构与存储结构

     数据模型

     HBase的基本架构


    HBase定义

    H代表HDFS,Base代表DataBase,以HDFS为基础的分布式非关系型(NoSQL)数据库。

    NoSQL数据库是以K,V来存储的,读取效率比关系型数据库更高

    HBase的逻辑结构与存储结构

    以JSON数据为例

    逻辑结构模型

    存储数据稀疏,数据存储多维,不同的行具有不同的列,数据整体有序,

    RowKey:按照RowKey的字典序排列,RowKey为Byte数组。

    store:在纵向切分,按照列族切分,切分完称为store,按照列族切分为store,用于底层存储到不同文件中,将一份数据存到多个文件夹中。

    物理存储结构模型

     HDFS上的数据不能修改,只能删除,重写,追加写,但是HBase作为数据库要有修改数据的功能,如何在HDFS的基础上实现修改数据的功能呢?

    TimeStamp(时间戳):

    采用时间戳的方式,同一个key 对应多条数据,时间戳最大的那个就是最新的数据。

    Type:

    type用来标记数据是否被删除,如果有两个数据,时间戳小的为delete,大的为put,说明修改了新的数据,如果大的为delete,那么说明该数据被删除了。

     数据模型

    NameSpace

    命名空间,类似于关系数据库中的database的概念,HBase自带hbase和default两个命名空间,hbase中存放HBase内置的表,default是用户默认使用的命名空间

    Table

    类似于关系型数据库的表概念,但HBase定义时只需要声明列族,列可以动态的按需指定。

    Row

    每一行数据都由RowKey和Column组成,查询数据只能根据RowKey查询,所以RowKey的设计很重要

    Column

    每个列由列族(column family)和列限定符限制,建表时只需指明列族,列限定符不需要预先定义。

    TimeStamp

    每条数据写入时系统自动加上该字段,为写入HBase的时间

    Cell

    针对底层存储数据的一行,由rowkey,column qualifier,timestamp唯一确定的单元,cell中的数组都是由字节码形式存储。

     HBase的基本架构

    HBase是分布式的,分为两种角色,master和region server

    master

    1.管理元数据表格habse:meta,接收用户对表格创建修改删除的命令并执行

    2.监视region是否需要负载均衡,故障转移和region拆分

    负载均衡

    监控region分布在regionServer上是否均衡,由参数hbase.balancer.period控制周期时间,默认为5分钟

     故障转移

    一个region server负责管理几个region,通过region server对region的数据进行增删改查,如果某个region server没了,master需要及时发现并将管理权交给其他regionserver。

    region server

    region server将进程信息注册到zookeeper里面,master读取注册信息,从而实现对region server的管理,负责对cell数据的处理,如写数据put,查询数据get,拆分合并region等操作。

    backup master

    backup master是master的备用,如果master没了,可以顶替它进行工作。

    masterProcWAL master 预写日志处理器

    把master需要执行的任务记录到预写日志WAL中,如果master宕机,让backupmaster读取日志继续干

    Zookeeper

    HBase通过Zookeeper来做master的高可用,记录regionServer的部署信息,存储meta表的位置信息。

  • 相关阅读:
    element ui el-select修改样式
    python模型训练
    python-----发邮件
    以太网基础学习(二)——ARP协议
    分布式数据库TiDB介绍
    「专题速递」数字人直播带货、传统行业数字化升级、远程协作中的低延时视频、地产物业中的通讯终端...
    Spring Batch 中的 chunk
    C语言——C程序编译过程
    简单的人脸识别实战
    Android 12.0 中 清除通知 , 系统源码分析(二)
  • 原文地址:https://blog.csdn.net/weixin_52972575/article/details/126131875