赞
踩
想了解HBase存储原理,最直观的方式是先了解它使用的存储思想,然后通过类比法,即可秒懂HBase为什么要这么设计了。所以再学习HBase如何实现存取的时候,最好先理解LSM树存储思想。
不要被所谓的XX思想所吓倒或者觉得他没什么作用,一般来说,XX思想都是非常简洁漂亮的,也是非常容易理解的。学习新知识最好要先掌握其大致思想,不要急于研究细节,因为"魔鬼都在细节当中"。掌握了思想脉络以后,就像有了张通关地图,然后再深入细节斩妖除魔。
LSM树,即日志结构合并树(Log-Structured Merge-Tree)。
1.数据先存储到内存C0中,这样可保证数据存储快。
2.当达到一定阈值后(内存宝贵),则开始转存到C1(硬盘)上。对数据持久化保存,防止数据丢失。
3.将许多的C1小文件进行合并,方便管理。
1.用户数据到大RegionServer,先保存到memStore(内存,保证速度快)和log(日志,防止内存中数据丢失,保证HV)中。
2.内存中的数据达到一定的阈值,将数据保存到硬盘上(StoreFile)。
3.将硬盘上的数据文件合并成一个大文件。
用户数据进入Region后,先会进入MemStore;数据在MemStore中达到一定阈值以后会写到StoreFile,StoreFile再将数据封装成HFile,然后再将HFile写到HDFS中。
第一级:Hlog+MEMStore,保证了高速写入,降低延迟。
第二级:StoreFile + HFile,保证了不可靠数据的持久化(将内存数据保存在硬盘上)。
正如开头提到的,LSM树存储思想其实很简单,在HBase中体现在:将数据先存储到内存,达到一定量后,将其写入硬盘日志中,然后伺机将多个日志文件合并在一起。这就是日志结构合并(LSM)的存储思想了。
关于Hbase的其他内容,后续也将更新,喜欢就点个赞和关注吧。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。