Hbase介绍

作者: ahzhaojj | 来源:发表于2016-10-16 16:00 被阅读0次

    Hbase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用Hbase技术可在廉价PC Server上搭建起大规模集群。它是一个可以随机访问的存储和检索数据的平台,允许动态的灵活的数据模型。

    一、Hbase架构

    hbase架构.png

    Hbase主要由Zookeeper、HMaster和HRegionServer组成。
    1.ZooKeeper可避免Hmaster的单点故障,其master选举机制可保证一个master提供服务。
    2.Hmaster管理用户对表的增删改查操作,管理HRegionServer的负载均衡。并可调整Region的分布,在HRegionServer退出时迁移其内的HRegion到其他HRegionServer上。
    3.HRegionServer存放和管理本地HRegion(其数量可通过配置文件更改)。HRegionServer是Hbase中最核心的模块,其主要负责响应用户的I/O请求,向HDFS文件系统中读写数据。HRegionServer内部管理了一系列HRegion对象,每个HRegion对应一个Region,HRegion中由多个Store组成。每个Store对应了Column Family的存储。
    4.Storefile、Hfile存储hadoop下的二进制文件,Storefile是对Hfile的轻量级封装。

    二、逻辑模型

    hbase逻辑模型.png

    其中行键和列按字典序排列,值的版本则按时间倒序排列。

    三、Hbase读写流程

    hbase读写流程示意图.png

    3.1 Hbase写数据流程

    (1)根据Zookeeper找到-ROOT-表,进而找到.META.表,.META.表中存储了相应Region位置。Client将据此访问HRegionServer和相应的Region。
    MemStore是内存里的写入缓冲区,HBase中数据在永久写入磁盘之前在这里积累。当MemStore填满之后,其中的数据会刷写到硬盘。若发生服务器宕机,内存中没有写入硬盘的数据就会丢失。当开启了预写式日志,重新启动时则可根据预写日志恢复数据。
    (2)当StoreFile较多的时候会触发Compaction过程,将多个StoreFile合成一个StoreFile。
    Compaction主要作用为合并文件,以及清除过期数据、多余版本的数据,提高读写数据的效率。HBase根据合并规模将Compaction分为了两类:MinorCompaction和MajorCompaction。
    1.Minor Compaction指小合并操作,用来对部分文件的合并操作,并设置TTL过期版本清理,但不做任何删除数据、多版本数据的清理操作。

    2.Major Compaction是指将所有的StoreFile合并成一个StoreFile,最终整合并处理一个文件。

    3.2 Hbase读数据流程

    在找到region后,首先在MemStore中读,若没有数据则进入BlockCache(读缓存)中进行读操作。若在BlockCache中没有找到数据,则将在磁盘中寻找读取数据。

    相关文章

      网友评论

        本文标题:Hbase介绍

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