文章目录
-
- 一、系统结构与环境角色
-
- 1.架构图
- 2.HMaster
- 3.RegionServer
- 4.Client
- 5.Zookeeper
- 6.HDFS
- 二、组件
-
- 1.Write-Ahead-logs(hlog)
- 2.Region
- 3.Store
- 4.HFile
- 5.MemStore
- 三、读写存操作
-
- 1.Hbase的写流程
- 2.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会在内存中存储键值对。