HBase的体系结构

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架构

细节可以参考这篇文档

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354

推荐阅读更多精彩内容