介绍
hbase架构主要由hmaster,zookeeper和regionserver三部分构成,底层数据存储在hdfs中
hmaster
允许有多个master节点,使用zookeeper控制,保证只有一个master节点处于激活状态,当存活master机器宕机,其他的master节点向zookeeper竞争,成为存活的节点,hmaster主要复制table和region的工作。
- 管理用户对table的增,删,改,查操作。
- 管理regionServer的负载均衡,调整region分布
- 在region分裂后,负责新region的分配
- 在regionServer死亡后,负责对regionServer上的region的迁移
zookeeper
- 负责hbase中多hmaster的选举
- 实时监控rs的存活
- 存储hbase的元数据信息
regionserver
rs是hbase中最核心的模块,负责响应用户i/o请求,并且向hdfs文件系统中读写数据。rs管理了一系列的HRegion。
- 每个HRegion对应table中的一个region
- region由多个HStore组成,每个HStore对应了一个column Family的存储
- 每个HStore由一个MemStore和多个HFile组成
- Memstore为写时内存,数据写入时,先写入到Memstore中,到达一定量时,flush到HFile中
- HFile为hdfs中的小文件,数量过大时,进行compact操作,合并成一个大文件
每个rs中还有一个HLog对象,HLog的数据也是存储在hdfs上,在数据写入到MemStore中后,将数据备份一份到HLog中,防止数据丢失。