HBase读与写数据流程

本文详细介绍了HBase的数据读写流程,包括HBase的基本架构和组件,以及客户端如何通过Zookeeper找到Region Server进行数据操作。在写数据时,数据先存入MemStore,再通过Flush和Compact形成StoreFile,Split操作用于处理Region的负载。读数据时,客户端通过Zookeeper、-ROOT-和.META.表定位到具体Region Server。WAL在Put操作中起到关键作用,确保数据故障恢复。
摘要由CSDN通过智能技术生成

Hbase读与写数据流程


1、HBase基本架构

HBase是一个构建在HDFS上的分布式列存储系统; 
HBase是Apache Hadoop生态系统中的重要一员,主要用于海量结构化数据存储; 从逻辑上讲,HBase将数据按照表、行和列进行存储。 



2、HBase基本组件

1) Client  
包含访问HBase的接口,并维护cache来加快对HBase的访问 

2)  Zookeeper  
保证任何时候,集群中只有一个master 
存贮所有Region的寻址入口 
实时监控Region server的上线和下线信息。并实时通知给Master 
存储HBase的schema和table元数据 

3)  Master  
为Region server分配region 
负责Region server的负载均衡 
发现失效的Region server并重新分配其上的region 
管理用户对table的增删改查操作 

4)  Region Server  
Region server维护region,处理对这些region的IO请求 
Region server负责切分在运行过程中变得过大的region


5)  Region是HBase数据存储和管理的基本单位。一个表中可以包含一个或多个Region。 
  HBase表中的记录,按照行键进行拆分, 拆分成一个个的region。许多个region存储在region server(单独的物理机器)中的。
这样,对表的操作转化为对多台region server的并行查询。(这就是hbase适合海量数据的特性,大查询分解成小查询到不同的 region 服务器中进行。hbase的查询时把,查询的算法发送到所有的region server中进行查询,分布式并行的查询。)


3、HBase写数据流程

1)  HBase Client写入数据,存入MemStore,一直到MemStore满 ,Flush成一个StoreFile;

2)  StoreFile直至增长到一定阈值 ,触发Compact合并操作 ,多个StoreFile合并成一个StoreFile,同时进行版本合并和数据删除,当StoreFiles Compact后,逐步形成越来越大的StoreFile。 


3)  单个StoreFile大小超过一定阈值后,触发Split操作,把当前Region Split成2个Region,Region会下线,新Split出的2个孩子Region会被HMaster分配到相应的HRegionServer 上,使得原先1个Region的压力得以分流到2个Region上。


4)  由此过程可知,HBase只是增加数据,有所得更新和删除操作,都是在Compact阶段做的,所以,用户写操作只需要进入到内存即可立即返回,从而保证I/O高性能。


4、HBase读数据流程

1) client 访问hbase 上数据的过程并不需要master 参与,寻址访问zookeeper 和region server,数据读写访问regioneserver。HRegionServer主要负责响应用户I/O请求,向HDFS文件系统中读写数据,是HBase中最核心的模块。

2) HBase中有两张特殊的Table,-ROOT-和.META.
 1) .META.:记录了用户表的Region信息,.META.可以有多个regoin
 2) -ROOT-:记录了.META.表的Region信息,-ROOT-只有一个region
 Zookeeper中记录了-ROOT-表的location

3) Client访问用户数据之前需要首先访问zookeeper,然后访问-ROOT-表,接着访问.META.表,最后才能找到用户数据的位置去访问.


5、关于WAL(Write-Ahead-Log):

关于Put上的WAL,开启WAL服务器就会把put写入到WAL,然后写到memstore里,这样一旦服务器出现故障,数据可以从WAL中恢复。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值