HBase的体系结构

2020-12-23  本文已影响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的集群管理中扮演着非常重要的角色。

Master

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

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

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

RegionServer

它负责服务和管理区域。 在分布式群集中,RegionServer在DataNode上运行,它由WAL(HLog)、BlockCache以及多个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)

HDFS

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


HDFS架构

细节可以参考这篇文档

上一篇 下一篇

猜你喜欢

热点阅读