美文网首页大数据学习
HBase系统架构&数据结构介绍

HBase系统架构&数据结构介绍

作者: TZX_0710 | 来源:发表于2020-05-27 16:10 被阅读0次

    一、HBase基本概念

    HBase-webTable

    1.RowKey(行键)

    Row Key是用来检索记录的主键。访问HBase当中的数据只有三种方式: 1.通过指定的RowKey进行访问。2.通过Row Key的range进行访问。访问指定范围内的行。3.全表扫描
    Row Key可以是任意字符串,存储按照Row Key的字典进行排序。字典对Int类型的Row Key的排序为1,10,100,11,12,13,14,15,16,17,18,19,2,20,21,…,9,91,92,93,94,95,96,97,98,99
    行的一次读写操作时原子性的

    2.Column Family(列族)

    HBase表中的每个列,都属于某个列族。列族是表schema的一部分,所以列族需要在创建表时进行定义。列族的所有列都以列族名作为前缀,例如:courses:history,courses:math都属于courses这个列族,它们的列限定分别是history和math。需要注意的是列限定符不是表Schema的一部分,可以在插入数据的时候动态创建列。

    3.Column(列)

    HBase中的列由列族和限定符组成,它们由:分割。一个完整的列名表示为:列族:列限定符

    4.Cell

    Cell是行,其中包含值和时间戳,HBase中一个单元格是由多个版本的数据组成的,用每个时间戳来进行区分。

    5. TimeStamp

    HBase中通过row key和cloud 确定的为一个存储单元称之为cell。每个cell都保存着同一份数据的多个版本。版本索引通过时间戳来区分。

    二、存储结构

    HBase

    2.1 Regions

    HBase Table中所有行按照 Row Key的字典序排列。HBase Tables通过行键的范围被水平切分成多个Region。一个Region包含了在start key 和end key之间的所有行。
    裂变每张表刚开始的时候只有一个Region。随着数据增加,达到了阈值,那么就会一分为2.变成2个新的Region。随着数据量增加,Region的数量也变的越来越多。
    Region 是HBase中分布式存储负载均衡的最小单元,意味着不同的Region是可以被分布在不同的节点上的

    2.2 Region Server

    Region Server运行在HDFS的DataNode上,它具有以下组件。

    WAL :用于存储未进行持久化的数据记录,在故障时进行恢复。
    BlockCache: 读缓存。将频繁读取的数据写入内存,如果内存空间不足,则淘汰掉最近少使用的数据
    HFile: 将行数据按照Key/Values的形式存储在文件系统中。

    三、HBase系统架构

    3.1 系统架构

    HBase遵循Master/Salve架构,由三种不同的类型组件组成

    3.1.1zookeeper

    1.保证任何时候,集群中只有一个Master

    1. 存储所有Region的寻址入口
    2. 实时监控Region Server的状态。
    3. 存储HBase的Schema,包括有哪些Table,每个Table有哪些Column Family等信息。

    3.2 Master

    1.为Region Server分配Region
    2.负责Region Server的负载均衡

    1. 发现失效的Region Server并重新分配Region
    2. GFS上的垃圾文件回收
    3. 处理Schema的更新请求

    3.3Region Server

    Region Server

    1.Region Server负责维护Master分配给它的Region,并处理发送到Region上的IO请求

    1. Region Server负责切分在运行过程中的变得更大的Region

    3.4组件之间的协作

    HBase使用Zookeeper作为分布式协调服务来维持集群中的服务器状态。Zookeeper负责维护可用服务裂表,并提供服务故障沟通服务:
    每个Region Server都会在 zookeeper上面创建一个临时节点。Master通过Zookeeper的Watcher机制对节点进行监控,从而可以发现新加入的RegionServer或故障退出的RegionServer。
    所有Masters会竞争性的在Zookeeper上创建同一个临时节点,由于Zookeeper只能有一个同名节点,所以必然只有一个Master能够创建成功,此时该Master就是主Master,主Master会定期向Zookeeper发送心跳,备用Master则通过Watch机制对HMaster所在节点监听

    HBase写入数据流程

    Client向RegionServer提交写请求。
    RegionServer 找到目标Region
    Region检查数据是否与Schema一致
    如果客户端没有指定版本,则获取当前系统时间作为版本
    将更新写入WAL LOG
    将更新写入Memstore
    判断Memstore存储是否已满,如果存储已满则需要flush为Store Hfile文件

    HBase读取数据的流程

    客户端从Zookeeper获取META表所在的RegionServer
    客户端访问META表所在的RegionServer,从META表中查询访问行键所在的Region Server,之后客户端缓存将这些信息以及META表的位置
    客户端从行键所在的Region Server上获取数据

    相关文章

      网友评论

        本文标题:HBase系统架构&数据结构介绍

        本文链接:https://www.haomeiwen.com/subject/ofiqahtx.html