1 系统架构
简单架构图
1.1Client
客户端:例如在HBase学习笔记(二)https://blog.csdn.net/zhang_232/article/details/129251800中的shell客户端(Ruby),在HBase学习笔记(三)https://blog.csdn.net/zhang_232/article/details/129413522中的Java Api客户端。
1.2Master Server
做一些管理型的工作,不负责数据操作
监控Region Server
处理RegionServer故障转移
处理元数据变更
处理region的分配或移除(一个表有很多region组成,指定region的个数)
空闲时间数据的负载均衡
通过Zookeeper发布自己的位置给客户端
1.3 Region Server
操作数据的服务器
一个表分为不同的region操作的
处理分配给他的region
负责存储Hbase的实际的数据
刷新缓存到HDFS
维护Hlog
执行压缩
负责处理region分片
regionserver包含了众多丰富的组件
Write-Ahead logs(预写日志)
HFile(StoreFile)
Store(一个列簇,如C1)
MemStore()
Region
2 逻辑结构模型
2.1 Region
在Hbase中,表被划分很多Region,一个Region存储表的一部分数据,由RegionServer提供服务
2.2 Store
一个region划分多个store,一个列簇对应一个Store,垂直切分,存储在HDFS中。
2.3MemStore
与Store增加一层缓存,数据优先写入MemStore,提升速度,与缓存类似,在内存操作每个列簇都有一个MemStore,当要满的时候,刷入磁盘HDFS的Hfile
2.4StoreFile
其实就是HFile,在Hbase中成为Hfile,在HDFS中称为StoreFile,写入的HFile是连续的,当MemStore快满的时候刷入StoreFile
2.5WAL
全称Write Ahead Log,最大作用就是故障恢复,高并发持久化日志保存与回访,每个业务数据操作都会保存在WAL中,一旦服务器崩溃,就可实现回复之前崩溃的数据(MemStore中的数据)