HBase架构简析

一、HBase架构简介

HBase架构图

1、StoreFile

HBase数据的存储单元,底层使用HDFS存储。数据按照Cell(RowKey、Column Family、Column)排列,相同Cell按照timestamp倒序排列

2、HStore

对应一个Table在一个HRegion中的一个Column Family

3、HRegion

对应一个Table的一个Region在一个HRegionServer中的表达
HBase使用RowKey将表水平切割为多个Region

4、HRegionServer

用于存放和管理本地HRegion;
HBase在启动时由HMaster将HRegion分配给HRegionServer管理;
Client直接连接HRegionServer读写数据;

5、WAL

Write Ahead Log。它是HDFS上的文件,所有写操作都会先保证将数据写入WAL文件,防止HRegionServer宕机时MemStore中的数据丢失;
WAL以table + rowkey的方式记录一条条数据操作记录;

6、HMaster

管理HRegionServer,管理和分配HRegion给HRegionServer以实现负载均衡功能;
admin功能:table的DDL操作;

7、Zookeeper

协调系统,存放整个HBase集群的元数据和集群状态信息;
存放了hbase:meta文件所在位置,Client通过该文件定位table:rowkey所属Region及Region所在的RegionServer;

二、数据切分

HBase将Table按照RowKey的范围切分为多个Region,对应RowKey的数据被划分到对应的Region存储;
Region底层使用HDFS存储,在HBase启动时被分配给某一个HRegionServer管理;
总结:

  • 一个Table对应多个Region
  • 一条RowKey数据只存在于一个Region中
  • 一个Region同时只被一个HRegionServer管理
  • 一个HRegionServer管理多个Region,这些Region可以属于不同的Table

三、集群容灾

1、HFile存储容灾

  • HFile底层基于HDFS存储,HDFS的3个DataNode备份数据的方式保证数据分布式存储不丢失;
  • 当HDFS某个DataNode挂掉时,由HStore内置的HDFS客户端自动感知并切换到备份DataNode读写,切换过程对上层透明;

2、HRegionServer服务容灾

  • HBase启动时,HMaster分配HRegion给HRegionServer管理;
  • 某台HRegionServer服务不可用时,HMaster通过zk感知,并将对应收到影响的* HRegion列表分配给其他HRegionServer管理;
  • 其他HRegionServer通过读取WAL重建HRegion中table:rowkey的对应数据,重建完成后对外提供HRegion的读写服务;
  • 重建过程中,对应HRegion所属的数据服务不可用;

3、HMaster服务容灾

  • HMaster一般部署2台服务,通过zk完成热备;
  • 同时只有一台HMaster提供服务,当主HMaster服务宕机时,备HMaster立即通过zk感知并提供服务;

四、数据读写过程

1、数据的写入

  • client发起某table:rowkey数据的Put操作
  • client从Zookeeper获取hbase:meta文件所在的HRegionServer节点
  • client查询hbase:meta获取table:rowkey对应的HRegion,以及HRegion所在的HRegionServer,并缓存信息到本地
  • client直接发送put()请求给HRegionServer
  • HRegionServer将对应table:rowkey的put请求记录在WAL中
  • HRegionServer将对应table:rowkey的put请求数据写入HRegion对应的MemStore中
  • HRegionServer返回响应给client,put()操作完成
  • MemStore中的数据会在特定条件下持久化到HFile中,WAL文件也会定期roller精简

2、数据的读取

寻找Region的过程类似,略

五、HBase特性

1、CP系统(强一致性+分区容错性)

  • 每个RowKey的值只出现在一个Region
  • 同一时间一个Region只分配给一个HRegionServer
  • 行内的mutation操作都是原子的
  • 单个RowKey的put操作要么成功,要么完全失败

当某台RegionServer fail的时候,它管理的Region failover到其他RegionServer时,需要根据WAL来redo(redolog,有一种日志文件叫做重做日志文件),这时候进行redo的Region是unavailable的;所以hbase降低了可用性,提高了一致性。
设想一下,如果redo的region能够响应请求,那么可用性提高了,则必然返回不一致的数据(因为redo可能还没完成),那么hbase就是降低一致性来提高可用性了。

2、顺序磁盘IO

MemStore中的数据Cell是按照RowKey + Column Family + Column排序的,所以持久化到HFile的过程是顺序磁盘IO。数据一旦刷入HFile中就是持久化不可变的。

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

推荐阅读更多精彩内容

  • HBase Architectural Components(HBase架构组件) HBase架构也是主从架构,由...
    陌上疏影凉阅读 2,391评论 0 7
  • 最近在逐步跟进Hbase的相关工作,由于之前对Hbase并不怎么了解,因此系统地学习了下Hbase,为了加深对Hb...
    飞鸿无痕阅读 50,211评论 19 272
  • HBase那些事 @(大数据工程学院)[HBase, Hadoop, 优化, HadoopChen, hbase]...
    分痴阅读 3,937评论 3 17
  • HBase存储架构图 HBase Master 为Region server分配region 负责Region s...
    kimibob阅读 5,572评论 0 52
  • 一、HBase简介 Hbase是什么 HBase是一种构建在HDFS之上的分布式、面向列、多版本、非关系型的数据库...
    便利蜂数据平台阅读 975评论 0 4