HBase读写架构图

HBase学习总结

1、HBase简介
HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储集群。
HBase的特点:
1、海量存储 :适合存储PB级别的数据
2、列式存储 :HBase是根据列族存储的,列族下面有很多的列,列族可以在创建表的时候就必须指定
3、极易扩展 :一个是基于上层处理能力(RegionServer)的扩展,一个是基于存储的扩展(HDFS)
4、高并发:HBase的单个IO延迟下降的并不多,因此能获得高并发、低延迟的服务
5、稀疏:HBase可以指定多的列,在列为空的条件下,不会占用存储空间
2、HBase架构
在这里插入图片描述
1)Client
Client包含了访问Hbase的接口,另外Client还维护了对应的cache来加速Hbase的方法,比如chae.META信息。
2)Zookeeper
HBase通过Zookeeper做高可用,RegionServer监控、元数据的入口以及集群配置维护等工作,通过ZK来保证集群中只有一个master提供服务
3)HMaster
为regionserver分配Region,维护整个集群的负载均衡,维护整个集群的元数据信息。
4)HregionServer
直接对用户的读写请求,是真正的干活节点,它主要的功能是管理master为其分配的Region,处理来自客户端的请求,负责和底层的HDFS的交互,存储数据到HDFS上 ,负责Region变大以后的拆分,负责Storefile的合并工作。
5)HDFS为Hbase提供最终的底层数据服务,同时为HBase提供高可用的支持,具体包括,提供元数据和表数据的底层分布式存储服务,数据多副本,保证的高可靠和高可用性。
3、HBase的写流程
1、构建Put对象:一个Put对象代表一行记录,可以添加多个列的数据
Rowkey为 021464812658 三个单元格为 name,age,address
HBase主要提供了两个写数据的接口,一个是写入单行数据,即Put接口,另一个是PutList接口,可以批量写入多行数据。
先简单下写入HBase的流程图
在这里插入图片描述
4、HBase读流程
在这里插入图片描述1、Client先访问zookeeper,从meta表读取region数据,然后读取meta表中的数据。meta中又存储了用户表的region信息。
2、根据namespace、表名和rowkey在meta表中找到对应region信息。
3、找到这个region对应的regionserver。
4、查找对应的region。
5、先从MemStore找数据,如果没有,再到BlockCache里面读。
6、BlockCache还没有,再到StoreFile上读
7、如果从StoreFile里面读取的数据,不是直接返回给客户端,而是先写入BlockCache,再返回给客户端。
5、数据flush过程
1)当MemStore数据达到阈值(128M,老版本是64M),将数据刷到硬盘,将内存中的数据,同时删除HLog的历史数据。
2)并将数据存入到HDFS上。
3)再HLog中做标记。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值