Hbase内核与能力
1、Hbase概念
HBase(Hadoop Database),是一个基于Google BigTable论文设计的高可靠性、高性能、可伸缩的分布式存储系统。
• 松散表结构(Schema free)
• 原生海量数据分布式存储
• 随机查询、范围查询
• 高吞吐,低延迟
• 在线NOSQL数据库
• 多版本,增量导入、多维删除
2、Hbase的四大基因
2.1、自动分区
传统的数据库在数据访问量足够大的时候需要考虑分库分表的情况,将分库理解为分区,我们需要自己去通过一系列的手段计算将数据分到哪个区内,而当数据量再次庞大,我们需要加库的时候,这个时候又需要重新写hash等计算分区。
而Habse在设计之初就考虑了自动分区的情况,具体参考下图
2.2、LSM Tree
LSM树(Log-Structured Merge Tree)存储引擎和B树存储引擎一样,同样支持增、删、读、改、顺序扫描操作
。而且通过批量存储技术规避磁盘随机写入问题。当然凡事有利有弊,LSM树和B+树相比,LSM树牺牲了部分读性能,用来大幅提高写性能
。且相对于B+树来说具备超强的数据导入能力
。
2.3、存储计算分离
存储计算分离
2.4、Hbase生态
3、应用场景
4、全新的Hbase2.0版本
4.1、小对象存储
MOB(Moderate Object Storage) 功能使HBase能高效地存储那些100k~10M(当高于这个值的小对象会影响效率)
中等大小的对象。这使得用户可以把文档、图片对象保存到HBase系统中
用户写入的小对象flush成一个独立文件,原有的KV中的value只存这个对象的引用路径
对于存储对象文件,更少地进行compaction来减少写入放大效应