Hbase的WAL机制,HbaseWAL机制
简介
WAL(Write-Ahead-Log)预写日志是Hbase的RegionServer在处理数据插入和删除的过程中用来记录操作内容的一种日志。在每次Put、Delete等一条记录时,首先将其数据写入到RegionServer对应的HLog文件中去。
客户端向RegionServer端提交数据的时候,会先写入WAL日志,只有当WAL日志写入成功的时候,客户端才会被告诉提交数据成功。如果写WAL失败会告知客户端提交失败,这其实就是数据落地的过程。
在一个RegionServer上的所有Region都共享一个HLog,一次数据的提交先写入WAL,写入成功后,再写入menstore之中。当menstore的值达到一定的时候,就会形成一个个StoreFile。
Hbase容错处理
WAL记载了每一个RegionServer对应的HLog。RegionServer1或者RegionServer1上某一个regiong挂掉了,都会迁移到其它的机器上处理,重新操作,进行恢复。
当RegionServer意外终止的时候,Master会通过Zookeeper感知到,Master首先会处理遗留下来的HLog文件,将其中不同Region的Log数据进行拆分,分别放到相应的Region目录下,然后再将实效的Region重新分配,领取到这些Regio你的RegionMaster发现有历史的HLog需要处理,因此会Replay HLog的数据到Memstore之中,然后flush数据到StoreFiles,完成数据的恢复。
Hbase适用场景
1.大数据量存储,大数据量高并发操作。
2.需要对数据随机读写操作。
3.读写访问均是非常简单的操作
Hbase和HDFS的关系
相同点:
二者都具有良好的容错性和扩展性,都可以扩展成百千上万个结点
不同点:
1.HDFS适合批处理场景。
2.HDFS不支持数据的随机查找、不适合增量数据处理、不支持数据更新。
关系:
Hbase内存管理的所有文件都存储在HDFS之中。