HBase的系统结构与读写流程

一、系统结构与环境角色

1.架构图

在这里插入图片描述

2.HMaster

  • 监控RegionServer
  • 处理RegionServer故障转移、处理源数据变更
  • 处理region的分配与移除
  • 空闲时进行数据的负载均衡
  • 通过ZK发布自己的位置给客户端连接

3.RegionServer

  • 负责与hdfs交互,存储数据到hdfs中
  • 处理hmaster分配的region
  • 刷新缓存到hdfs
  • 维护hlog
  • 执行压缩
  • 处理region分片
  • 处理来自客户端的读写请求

4.Client

  • Client包含了访问Hbase的接口
  • 维护对应的cache来加速Hbase的访问,比如MATE表的元数据信息

5.Zookeeper

  • Zookeeper主要负责master的高可用
  • RegionServer的监控
  • 元数据的入口以及集群配置的维护工作。

6.HDFS

HDFS为Hbase提供最终的底层数据存储服务,同时为HBase提供高可用(Hlog存储在HDFS)的支持,具体功能概括如下:

  • 提供元数据和表数据的底层分布式存储服务
  • 数据多副本,保证的高可靠和高可用性

二、组件

1.Write-Ahead-logs(hlog)

它是Hbase的修改记录,当对Hbase进行读写操作时,数据不是直接资额入到磁盘的,它会在内容中保存一段时间(时间长短以及数据量的阈值可以设置)。但是我们都知道数据存放在内存中并不安全,为了避免这个问题;数据会先写入到Write-Ahead-logfile的文件中(和hdfs的edit文件相似),然后在写入内存。当系统故障时可以通过日志文件重建数据。

2.Region

Hbase的表分片,Hbase表会根据RowKey的不同被切分成不同的region存储在RegionServer中;所以在一个RegionServer中可以有多个不同的region。

3.Store

Hfile存储在Store中,一个Store对赢Hbase表中的一个列族。

4.HFile

是在磁盘上保存原始数据的实际物理文件。StoreFile是以Hfile的形式存储在Hdfs中。

5.MemStore

内存存储,位于内存中,用来保存当前的数据操作,所以当数据保存在WAL中之后,RegsionServer会在内存中存储键值对。

三、读写存操作

1.Hbase的写流程

在这里插入图片描述

2.Hbase的读流程

在这里插入图片描述

发布了30 篇原创文章 · 获赞 42 · 访问量 7814
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章