这是HBase原理解读系列的最后一篇。在对HBase进行原理总结的时候遇到的一些常见问题进行总结。
1. 为什么hbase可以很快?
- HBase的内部有memStore做缓冲,读写都是有限基于内存实现的。所以读写的效率高。
- HBase中存储的数据是按照行键的字典顺讯进行排序的,所以查询效率高。
- HBase中存储的数据从水平方向上切分为若干个HRegion,进行分布式的存储,所以提高效率。
2. 为什么hbase可以存储很多数据?
- HBase中的数据最终是存储到HDFS上的,而HDFS是分布式的存储系统,可以动态扩容,基本可以认为Hbase的存储容量是没有限制的。
- Hbase中的空数据不占用空间,当数据比较稀疏时,不会浪费空间
- hbase按列存储数据,而同一个列中的数据数据结构往往类似,可以实现高下率的数据压缩,节省空间
为什么hbase的是可靠的?
- Hbase中存储的数据最终存储在HDFS中,而HDFS自带多副本机制,可以保证高可靠
- Hbase中存在多个HRegionServer,即使某些HRegionServer宕机,HBase也可以恢复数据到其他HRegionServer继续工作
- HMaster提供了备用机制,可以自动在HMaster 和 BackUpHMaster之间切换
hbase和hive和传统的关系型数据库的比较
- 比起传统的关系型数据库:
- 可以存储半结构化、非结构化的数据。
- 可以存储和处理更大级别的数据,提供高效的查询。
- 对于稀疏数据的处理更好。
- 具有更好的横向扩展性。