美文网首页
HBase的体系结构

HBase的体系结构

作者: 掩流年 | 来源:发表于2020-12-23 23:48 被阅读0次

HBase的体系结构属于典型的Master-Slave模型。它的数据存储在HDFS上,ZooKeeper被使用协助管理HBase。
我们可以用一张图来纵览HBase的整个体系结构。


HBase体系结构

Client

在连接方式上,HBase客户端会通过查询hbase:meta去找相关存活的RegionServer。找到相关的region后,客户端会直接和对应的regionServer连接而并不会再去通过master节点请求。 hbase:meta中的信息会被缓存在客户端中,除非集群有region分裂或者blance之类的调整,HBase会重新拉去hbase:meta中的信息。

在HBase2.0后,连接API改为Connection。(HTablePool在HBase 0.94、0.95和0.96中已弃用,并在0.98.1中由HBASE-6580或HConnection删除,而HConnection在HBase 1.0中已由Connection弃用。 )BufferedMutator, HTable已被标为deprecated

Zookeeper

zookeeper在HBase的集群管理中扮演着非常重要的角色。

  • 高可用:当Zookeeper通过心跳检测到有宕机节点。可以通过选举新的master节点,保证高可用。
  • 元数据:保存集群信息的元数据。
  • 一致性: Zookeeper可以通过加表锁,保证HBase表数据的一致性。

Master

主服务器负责监视群集中的所有RegionServer实例,并且是所有元数据更改的接口。 在分布式群集中,主服务器通常在NameNode上运行。具体细节HBaseMaster参考这篇文章

提供了一些面向元数据的结构的接口

  • 表(createTable,modifyTable,removeTable,启用,禁用)
  • ColumnFamily(addColumn,modifyColumn,removeColumn)
  • region(move, assign, unassign) (例如,当调用Admin方法disableTable时,它由主服务器提供服务。

另外Master节点提供了定期检查并清理hbase:meta。检查HDFS中HLog是否过期、HFile是否已经被删除,并在过期之后将其删除。

RegionServer

它负责服务和管理区域。 在分布式群集中,RegionServer在DataNode上运行,它由WAL(HLog)、BlockCache以及多个Region构成。

  • Region:数据表的一个分区。它存储rowkey按照散列区分的从startkey-endkey的数据。通常一个region设计为10G到50G。当数据表大小超过这个值就会自动分裂为两个Region。Region是集群负载均衡的基本单位。通常一张表的Region会分布在整个集群的多台RegionServer上,一个RegionServer上会管理多个Region,当然,这些Region一般来自不同的数据表。
    它的基本结构如下:
Table                    (HBase table)
    Region               (Regions for the table)
        Store            (Store per ColumnFamily for each Region for the table)
            MemStore     (MemStore for each Store for each Region for the table)
            StoreFile    (StoreFiles for each Store for each Region for the table)
                Block    (Blocks within a StoreFile within a Store for each Region for the table)
  • HLog:HBase数据随机写入时,并非直接写入HFile数据文件,而是先写入缓存,再异步刷新落盘。为了防止缓存数据丢失,数据写入缓存之前需要首先顺序写入HLog,这样,即使缓存数据丢失,仍然可以通过HLog日志恢复;其二,用于实现HBase集群间主从复制,通过回放主集群推送过来的HLog日志实现主从复制。

  • BlockCache:HBase的都缓存。HBase提供了两种不同的BlockCache实现来缓存从HDFS读取的数据:默认的堆上LruBlockCache和BucketCache(通常是堆外)。

  • Store: 多个Store构成1个region,Store的个数取决于表中列簇(columnfamily)的个数,多少个列簇就有多少个Store。每个Store由一个MemStore和一个或多个HFile组成。

  • MemStore: MemStore是HBase的写缓存。默认为128M,当超过这个值,数据就会被异步地将数据持久化到HFile中。

HDFS

由于HBase在HDFS上运行(并且每个StoreFile都作为文件写在HDFS上),因此重要的是了解HDFS体系结构,尤其是在如何存储文件,处理故障转移和复制块方面。
HDFS具有主/从体系结构。 HDFS群集由单个NameNode和管理文件系统名称空间并控制客户端对文件的访问的主服务器组成。 此外,还有许多数据节点,通常是集群中每个节点一个,用于管理与它们所运行的节点相连的存储。 HDFS公开了文件系统名称空间,并允许用户数据存储在文件中。 在内部,文件被分成一个或多个块,这些块存储在一组DataNode中。 NameNode执行文件系统名称空间操作,例如打开,关闭和重命名文件和目录。 它还确定块到DataNode的映射。 DataNode负责处理来自文件系统客户端的读写请求。 DataNode还根据NameNode的指令执行块创建,删除和复制。


HDFS架构

细节可以参考这篇文档

相关文章

  • hbase体系结构

    hbase体系结构 参考资料 1、《hbase原理和实践》

  • Hadoop实验——HBase的安装和实验

    实验目的 理解HBase在Hadoop体系结构中的角色。 熟练使用HBase操作常用的Shell命令。 熟悉HBa...

  • 51cto赵强HADOOP学习(九)

    Hbase 一个基于HDFS的NoSQL数据库 起源于Big Table的思想 面向列 HBase的体系结构和数据...

  • hbase的shell应用v2.0

    1.HBase体系架构 HBase的服务器体系结构遵循简单的主从服务器架构,它由HRegion服务器(HRegio...

  • HBase 体系结构

    从图中可以看出Hbase是由Client、Zookeeper、Master、HRegionServer、HDFS等...

  • HBase的体系结构

    HBase的体系结构属于典型的Master-Slave模型。它的数据存储在HDFS上,ZooKeeper被使用协助...

  • Hadoop中Hbase的体系结构

    科多大数据小课堂开课啦,带你认识Hadoop中Hbase的体系结构: HRegion 当一张表中的数据特别多的时候...

  • HBase的服务器体系架构

    HBase的服务器体系结构遵循简单的主从服务器架构,它由HRegion服务器(HRegion Server)群和H...

  • Hbase运行机制

    本文思路 Hbase是什么 Hbase的优劣 Hbase架构 Hbase容错 Hbase使用总结 HBase是什么...

  • 数据存储-Hbase基础

    Outline 什么是Hbase 为什么需要Hbase Hbase的基础概念 Hbase的架构 Hbase的读写操...

网友评论

      本文标题:HBase的体系结构

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