本篇主要是记录自己学习Hbase运行机制的学习记录,会在知识储备过程中对学习笔记不断的整理和完善。
1、hbase被put数据之后,又偷偷做了什么?
无论是调用代码api还是通过shell脚本往hbase中put数据,当我们scan时候就能看到记录已经被插入到hbase中。那么在这个之间,hbase又做了什么呢?
关键词:WAL,MemStore,HFile,BlockCache
当要插入数据的时候,我们都知道会将数据写入MemStore中,当MemStore中缓存的数据到达数据块的大小就会被写入到HFile中。但是这个进行过程中,如果该主机出现宕机,就以为着MemStore中缓存的数据都将会消失。这肯定是不利于容灾机制的。那么Hadoop集群在这里就增加了WAL写入机制。
将数据写入MemStore之前会先写入WAL文件,之后再缓存在MemStore上。由于WAL文件是持久化在HDFS上,所以当机器宕机的时候,就可以根据WAL中的数据进行重新写入HBsase。
2、WAL的写入机制
WAL写入当然会带来性能上的消耗,不过为了保证系统的容灾机制和数据的正确性,WAL带来的性能消耗也是可以无视的。除非说对性能有着非常高的要求,可以把WAL功能关闭,否则是不建议关闭的。
那么WAL是怎么进行写入的呢?
WAL采用循环写入机制。当
3、MemStore的实际作用是什么?
关键词:MemStore,排序
4、HBase中的数据始终保持字典顺序的排序环节是在哪里?
flush到HFile过程中进行排序。
5、为什么要保证数据按照顺序被排序?
为了高性能的读取。