您的位置:首页 > 其它

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上进行恢复.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: