背景
视图数据现在发展都比较快,数据量也越来越多,数据价值也越来越大,通过数据挖掘分析,可以产生越来越多的价值。所以这种大对象的存储需求也越来越多,HBase 2.0 发布了很多新的特性,其中一个非常值得关注的是中等对象存储的特性,即 HBase MOB(Medium Object Storage)特性。HBase 2.0 MOB的引入(由HBASE-11339这个issue引入),扩宽了HBase在人工智能、物联网等领域的应用场景。
最近公司也在考虑切换对象存储策略,由之前的ceph转变为HBase MOB。所以最近我也研究了下这个特性,将一些使用心得分享给大家。
HBASE MOB
MOB对象存储
在KV存储中,一般按照KeyValue所占字节数大小进行分类:
- KeyValue所占字节数小于1MB,这样的数据一般称为Meta数据
- KeyValue所占字节数大于1MB,小于10MB,这样的数据称为MOB,表示中等大小的数据
- KeyValue所占字节数大于10MB,称为LOB,大对象
对于HBase来说,存储Meta数据是最理想的场景。但是MOB存储的需求在现在的发展中也是很常见的。但是HBase存储MOB、LOB,是存在一些潜在的问题的:
- 由于HBase所有数据都需要先写Memstore,所以少数几个MOB的cell数据就需要进行Flush操作,会造成大量的HFile,严重影响HBase的读性能
- HDFS上的HFile文件多了后,触发LSM树会进行频繁的Compaction,消耗磁盘IO
- 由于MOB数据的写入&#x