在学习HBase之前,笔者建议带着思考去学习HBase,例如
1.HBase是什么?
HBase是基于Hadoop的分布式、面向列存储的数据库,HDFS为其提供分布式存储,MapReduce为其提供计算能力,zookeeper为其保证了高可用。通俗地理解它就是数据库,可以存储海量数据。
2.为什么要学习HBase?
我们学过的数据库有哪些呢?MySql,Oracle等,不过这两者都是OLTP类型的,并且是单节点数据库,不擅长处理海量数据,譬如MySql,处理一张表有几亿条数据时性能会明显下降,Hadoop对于开发者来说并不友好,因此,HBase应运而生,如上述所说,HBase是基于Hadoop的分布式的数据库。因此我们说 Hbase 是一个通过大量廉价的机器解决海量数据的高速存储和读取的分布式数据库解决方案。
当然,我这里提到关系型数据库不擅长处理海量数据,说的比较简单粗暴,首先他们的设计思想本就不同,每种数据库都有对应的场景。
3.怎么学好HBase?
我已经知道HBase是一个分布式、面向列的数据库,我随便找了一张HBase架构图,若有侵权请联系我。
HBase架构图
如图可知,HBase分布式体现在有多个HRegionServer节点,面向列指的是Store,也就是我们常提到的列族,列族是HBase一个很重要的概念。
那怎么学好HBase呢?还是那句话,带着思考去学,既然是数据库,那么它是如何存储数据的,也就是初学者最重视的HBase的读写流程。
貌似说了很多废话,但是到此时你若有很多疑问,请你记下来,主动去查找HBase相关资料,例如:
1.HBase架构
2.深入理解HBase的读写流程