存储结构
宏观架构
- Master: 负责启动的时候分配Region到具体的RegionServer, 执行各种管理操作,比如创建表、修改列族配置、Region的分割和合并。
- RegionServer: 存储Region.
- Region: HBase是一个会自动分片的数据库。一个Region 相当于关系型数据库中表的一个分区。
- HDFS: HBase底层的数据载体。
- Zookeeper:meta的位置存储在zookeeper中
RegionServer结构如下图所示:
预写日志
数据到达Region的时候是先写入WAL,然后再被加载到Memstore的。就算Region的机器宕掉了,由于WAL的数据是存储在HDFS上的,所以数据并不会丢失。
延迟(异步)同步写入WAL
Mutation.setDurability(Durability.ASYNC_WAL)
Mutation.setDurability(Durability.SKIP_WAL)
WAL滚动
WAL是一个环状的滚动日志结构,因为这种结构写入效果最高,而且可以保证空间不会持续变大。
WAL的检