Hbase的体系结构
Hbase的体系结构
Client
包含访问Hbase的接口,并维护表对应的RegionServer和Region缓存实现对HRegionServer的快速访问
Master
(1)管理集群中所有的RegionServer,包括RegionServer的负载均衡,RegionServer的宕机恢复,Region的迁移
(2)响应用户对表的各种管理请求,包括DDl,权限操作、切分表、合并数据分片以及Compaction等
(3)清理过期日志,Master会隔一段时间检查Hlog是否过期,Hfile是否被删除,在过期后会被删除
ZookeePer
(1)实现Master的高可用,任何时候只有一个Master可用,工作的Master挂了后,启用其它的Master
(2)存储元数据信息,管理RegionServera的集合,保存系统表hbase:meta的Region地址
(3)通过心跳检测RegionServer,如果检测到RegionServer宕机,则通知master处理
(4)分布式锁,Master对表进行ddl操作时,会加表锁,先后顺序
HLog(WAL log)
HLog文件就是一个普通的HadoopSequenceFile,SequenceFile的Key是HLogKey对象,HLogKey中记录了写入数据的归属信息,除了table和region名字外,同时还包括sequencenumber和timestamp,timestamp是写入时间,sequencenumber的起始值为0,或者是最近一次存入文件系统中sequence number
HLogSequeceFile的Value是HBase的KeyValue对象,即对应HFile中的KeyValue
BlockCache
BlockCache作为RegionServer的读缓存,数据读取时,先在BlockCache中读取,如果没有,再在Region中读取,Region中读取的数据也会在BlockCache中缓存
RegionServer
RegionServer主要处理用户的I/O请求,由Hlog(默认一个,可以开启多个),BlockCache,多个Region组成
Region
Region是Hbase中分布式存储和负载均衡的最小单元,最小单元表示不同的Region可以分布在不同的RegionServer上,单个的Region不能放在不同的RegionServer上
Store
Region由多个Store组成,一个Store对应一个列族,一个Store由一个Memstore和多个Storefile组成,Storefile就是Hfile的包装
MemStore
MemStore是缓存,写数据时,首先把数据写到MemStor中
Hfile
Hfile是真正存储数据的地方,Hfile的底层是由Hdfs的block组成