Hbase流程框架

Hbase 总体框架

注意点

1 客户端如果是针对数据的增删改查(DML)那么不需要经过HMaster

2 每一个store是一个文件夹,存储的是一个列族在这个regin下的数据;flush就会在hdfrs上store文件夹形成一个HFile文件,这样时间久了会有很多小文件,后面会有针对这些小文件的合并和split。

3 Hlog操作日志是实时落盘的,真正的内存数据是flush时落盘HFile

1 Hbase写数据流程1

写数据是先写Hlog,实时落盘,之后再写入内存,但是Hlog写入也是事务的,如果日志存储失败,内存中的数据也会一并删除。

2 Hbase读数据流程1

读数据流程在具体的reginserver上,是读storeFile+MemStore+BlockCache一块读取,然后看时间戳最新的rowkey的记录。但是因为一个store是一个文件夹,里面有多个hFile文件,如果BlockCache已经缓存了一个HFile文件了,那么就在读取store文件夹(一个列族的其中一个regin)里面相关记录的其他文件就好了。综上所述,读比写要慢。

3 Hbase compact合并小文件流程

注意:1) minor不会删除历史时间戳的记录,但是major大合并只会保留最新的数据记录。

2)另外一个删除历史数据的时机是flush的时候,但是只会删除相同rowkey的多条时间戳记录都在内存的情况下。

以上针对update情况,注意flush不会删除delete的数据记录,这是肯定的,因为磁盘里可能还有相同rowkey的记录。

delete记录只会在major的时候删除。

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章