Hbase深入学习
2017-11-18 10:26
113 查看
Memstore&StoreFile
client写入->存入MemStore,一直到MemStore满->flush成为一个StoreFile,直到增长到一定的阀值->compact合并操作->将多个storefile合并成一个storefile,同时进行版本合并和数据的删除->当storefile compact后,逐步形成越来越大的storefile->单个storefile大小超过一定的阀值后,触发split操作,把当前Region Split成2个Region,Region会下线,新split出的2个子Region会被HMaster分配到相应的HRegionServer上,使得原先的1个Region的压力得以分流到2个Region上.
Hbase只是增加数据,有所得更新和删除操作,都是在compact阶段做的,所以,用户写操作值需要进入到内存即可立即返回,从而保证了IO的高性能.
HLog文件
WAL意为Write ahead log,类似mysql的binlog,用来做灾难恢复,Hlog记录数据的所有变更,一旦有数据的修改,就可以从log中恢复。每个HRegionServer维护一个Hlog,而不是每个HRegion一个。这样不同的region(来自不同的表)的日志会混在一起,这样做的目的是不断追加单个文件相对于同时写多个文件而言,可以减少磁盘的寻址次数,提高了对表的写性能.这样的弊端:如果一台HregionServer下线,为了恢复其上的region,需要将HRegionServer上的log进行拆分分发到其他的HRegionServer上进行恢复.
client写入->存入MemStore,一直到MemStore满->flush成为一个StoreFile,直到增长到一定的阀值->compact合并操作->将多个storefile合并成一个storefile,同时进行版本合并和数据的删除->当storefile compact后,逐步形成越来越大的storefile->单个storefile大小超过一定的阀值后,触发split操作,把当前Region Split成2个Region,Region会下线,新split出的2个子Region会被HMaster分配到相应的HRegionServer上,使得原先的1个Region的压力得以分流到2个Region上.
Hbase只是增加数据,有所得更新和删除操作,都是在compact阶段做的,所以,用户写操作值需要进入到内存即可立即返回,从而保证了IO的高性能.
HLog文件
WAL意为Write ahead log,类似mysql的binlog,用来做灾难恢复,Hlog记录数据的所有变更,一旦有数据的修改,就可以从log中恢复。每个HRegionServer维护一个Hlog,而不是每个HRegion一个。这样不同的region(来自不同的表)的日志会混在一起,这样做的目的是不断追加单个文件相对于同时写多个文件而言,可以减少磁盘的寻址次数,提高了对表的写性能.这样的弊端:如果一台HregionServer下线,为了恢复其上的region,需要将HRegionServer上的log进行拆分分发到其他的HRegionServer上进行恢复.
相关文章推荐
- Hbase深入学习(二) 安装hbase
- Hbase深入学习(七) ―― 配置解释
- HBase学习之深入理解Memstore-6
- 深入学习HBase架构原理
- Hbase深入学习(二) 安装hbase
- Hbase深入学习(三) hbase安装目录解析
- Hbase深入学习(八) ―― region server and hmaster server
- Hbase深入学习(六) Java操作HBase
- HBase深入学习(1)
- HBase深入学习笔记
- Hbase深入学习(四) Hbase操作命令列表
- 深入学习HBase架构原理
- HBase深入学习(2)
- 深入学习HBase架构原理
- 深入学习hbase:表,列族,列标识,版本和cell
- HBase深入学习(1)
- Hbase深入学习(一) 什么是hbase
- Hbase深入学习(六) Java操作HBase
- HBase深入学习(2)
- 深入学习HBase架构原理