1.Region和Region服务器
表在行方向上,按照行键范围划分成若干的Region
每个表最初只有一个region,当记录数增加到超过某个阈值时,开始分裂成两个region
物理上所有数据存放在HDFS,由Region服务器提供region的管理
一台物理节点只能跑一个HRegionServer
一个Hregionserver可以管理多个Region实例
一个Region实例包括Hlog日志和存放数据的Store
Hmaster作为总控节点
Zookeeper负责调度
2.HLog
用于灾难恢复
预写式日志,记录所有更新操作,操作先记录进日志,数据才会写入
3.-ROOT- 和 .META. 表
HBase中有两张特殊的Table,-ROOT-和.META.
Ø .META.:记录了用户表的Region信息,.META.可以有多个regoin
Ø -ROOT-:记录了.META.表的Region信息,-ROOT-只有一个region
Ø Zookeeper中记录了-ROOT-表的location
4.Memstore与storefile
一个region由多个store组成,每个store包含一个列族的所有数据
Store包括位于把内存的memstore和位于硬盘的storefile
写操作先写入memstore,当memstore中的数据量达到某个阈值,Hregionserver会启动flashcache进程写入storefile,每次写入形成单独一个storefile
当storefile文件的数量增长到一定阈值后,系统会进行合并,在合并过程中会进行版本合并和删除工作,形成更大的storefile
当storefile大小超过一定阈值后,会把当前的region分割为两个,并由Hmaster分配到相应的region服务器,实现负载均衡
客户端检索数据时,先在memstore找,找不到再找storefile