Hbase架构总结

HBase是一个高可靠、高性能的分布式NoSQL数据库,适用于海量数据存储。其数据模型类似于关系型数据库,但底层采用多维映射。HBase架构包括RegionServer、Master和Zookeeper,以及依赖于HDFS的存储。数据写入经过MemStore和WAL确保数据安全,读取过程涉及Block Cache和HFile。HBase的写入和读取流程确保了高效的数据处理。
摘要由CSDN通过智能技术生成
  1. Hbase定义:

    HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。是一个高可靠、高性能、面向列、可伸缩的分布式存储系统。

  2. Hbase数据模型:

     逻辑上,HBase的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列。但从HBase的底层物理存储结构(K-V)来看,HBase更像是一个multi-dimensional map

             逻辑结构:

             物理结构:

  3. Hbase基本架构:
  1.  Region Server                                                                                                                 

      Region Server为Region的管理者,其实现类为HRegionServer,主要作用

 

  • 对数据操作有:get put delete
  • 对Region的操作:splitRegion compactRegion 

   2.  Master

           是对所有Region Server的管理者,其实现类为HMaster,主要作用

          对表的操作有:create delete alter

           对Region Server的操作:分配每个Region到每个Region Server,监控每个Region Server的状态,负载均衡和故障转移

3.Zookeeper

Hbase通过Zookeeper来做Master的高可用 Region Server的监控  元数据的入口以及集群配置的维护工作等。

4.HDFS

HDFS为Hbase提供最终的底层数据存储服务 同时为Hbase提供高可用的支持

5.StoreFile保存实际数据的物理文件,StoreFile以HFile的形式存储在HDFS上。每个Store会有一个或多个StoreFile(HFile),数据在每个StoreFile中都是有序的。

 6.MemStore

        写缓存,由于HFile中的数据要求是有序的,所以数据是先存储在MemStore中,排好序后,等到达刷写时机才会刷写到HFile,每次刷写都会形成一个新的HFile。

 7.WAL

      由于数据要经MemStore排序后才能刷写到HFile,但把数据保存在内存中会有很高的概率导致数据丢失,为了解决这个问题,数据会先写在一个叫做Write-Ahead logfile的文件中,然后再写入MemStore中。所以在系统出现故障的时候,数据可以通过这个日志文件重建。   

4.Hbase写流程

 

写流程:

  •         Client先访问zookeeper,获取hbase:meta表位于哪个Region Server。
    • 等达到MemStore的刷写时机后,将数据刷写到HFile。
    • 向客户端发送ack;
    • 将数据写入对应的MemStore,数据会在MemStore进行排序;
    • 将数据顺序写入(追加)到WAL;
    • 与目标Region Server进行通讯;
    • 访问对应的Region Server,获取hbase:meta表,根据读请求的namespace:table/rowkey,查询出目标数据位于哪个Region Server中的哪个Region中。并将该table的region信息以及meta表的位置信息缓存在客户端的meta cache,方便下次访问。

5.Hbase读流程

读流程

  •        Client先访问zookeeper,获取hbase:meta表位于哪个Region Server。
    • 将从文件中查询到的数据块(Block,HFile数据存储单元,默认大小为64KB)缓存到Block Cache。
    • 分别在Block Cache(读缓存),MemStore和Store File(HFile)中查询目标数据,并将查到的所有数据进行合并。此处所有数据是指同一条数据的不同版本(time stamp)或者不同的类型(Put/Delete)。
    • 与目标Region Server进行通讯;
    • 访问对应的Region Server,获取hbase:meta表,根据读请求的namespace:table/rowkey,查询出目标数据位于哪个Region Server中的哪个Region中。并将该table的region信息以及meta表的位置信息缓存在客户端的meta cache,方便下次访问。
  •              将合并后的最终结果返回给客户端。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值