HBase 的介绍

最近因为在面试中提到了 HBase ,所有对 HBase 有点兴趣想去了解下。

Apache HBase 是 Hadoop 数据库,一个分布式、可伸缩的大数据存储

HBase是依赖Hadoop的。为什么HBase能存储海量的数据? 因为HBase是在HDFS 的基础之上构建的,HDFS是分布式文件系统。

HDFS

如果你看到 HDFS 这个单词,基本上你就知道在说 Hadoop 了。

要知道,所有针对大数据的处理都是从存储开始的,如果存储一团糟,效率低下,那么大数据的处理也没有办法实现。

HBase 就是在 HDFS 的基础上创建一个 NoSQL,简单点来说就是在基于 Hadoop 的文件系统基础上,我们提供一个 NoSQL。

MongoDB

一说到 NoSQL,首先想到的可能就是 MongoDB 了。

为什么大的互联网公司包括金融行业都在 HBase 呢?

原因就在于写入的速度,hbase 由于只维护一个主键,写入的速度要比 MongoDB 这种要维护所有索引的数据库快多了。hbase占用两台机器能完成的事情,MongoDB要占用更多的机器。

但是代价就是 hbase 记录下东西以后,只能事后通过全表检索或按照索引范围的方式进行整体分析,而不能对具体每个人的数据进行实时分析,更强调数据分析能力而不是实时数据查询能力。

举个例子,对于用户访问网站的大量数据,我们需要怎么进行分析呢?

因为这些数据的价值低,但是量很大,非常大。

因此 Hbase 对这类数据的处理是有先天有优势的,MongoDB 通常就没有太大有优势了。


对于一些非实时的分析数据,我们使用 hbase 可能更加有优势。