Hbase 写工做机制

客户端——MemStore——列族——Hfile服务器

一、Hbase在执行写操做的时候,首先会将写动做记录在hlog,memstore中,只有在这两个地方都确认完成后才被记录操做成功。内存

Memstore是内存里面的缓冲区,Hbase在在写入硬盘以前会在这个缓冲区内积累,当MemStore的数据量达到阀值时,才开始向硬盘中写入,在列族中生成一个HFile文件,一个列族能够有多个HFile文件。
it

二、那么如今就面临一个问题,大型集群中出现故障很正常,若是MemStore没有来的急刷写,服务器挂掉了咋办?集群

Hbase采用的机制时在写动做完成以前写入wal,每一台服务器维护着一个  WAL文件,记录着发生的变化,直到在该文件中新纪录写入成功以后才被认为时成功,若是出现当机能够经过WAL 来恢复数据。不须要手动执行恢复。若是想禁用wal,  能够经过file

Put p = new Put();数据

p.setWriteToWal(false);客户端

来禁用。文件

若有错误你们积极提出,一同进步。
错误

相关文章
相关标签/搜索