hbase和hive有什么区别,分别适用于什么场景?

Hive和Hbase是基于Hadoop的两种不同技术——Hive是类似SQL的引擎,运行MapReduce任务,Hbase是Hadoop上NoSQL的Key/vale数据库。当然,这两个工具可以同时使用。就像用Google做搜索,用FaceBook做社交一样,Hive可以做统计查询,Hbase可以做实时查询,数据也可以从Hive写到Hbase,设置可以从HBase写回Hive。

* * *相同点:

1.hbase和hive都是基于hadoop构建的。Hadoop用作底层存储。

差异:

1.Hive是一个构建在Hadoop上的批处理系统,用来减少MapReduce作业的工作,HBase是一个支持Hadoop实时运行的项目。

2.假设您正在操作一个RMDB数据库。如果是全表扫描,用Hive+Hadoop,如果是索引访问,用HBase+Hadoop。

3.配置单元查询意味着MapReduce作业可以持续5分钟到几个小时。HBase非常高效,肯定比Hive高效很多。

4.Hive本身并不存储和计算数据,它完全依赖于HDFS和MapReduce。Hive中表的纯逻辑只是表的定义,也就是表的元数据。这样就可以将结构化数据文件映射到数据库表中,并提供完整的SQL查询功能,最终将SQL语句转换成MapReduce任务运行。

5.hive借用hadoop的MapReduce来完成hive中一些命令的执行。

6.hbase是物理表,不是逻辑表。它提供了一个超大的内存哈希表,搜索引擎使用它来存储索引和方便查询操作。

7.hbase是一个列存储。

8.hdfs是底层存储,hdfs是存储文件的系统,Hbase负责组织文件。

9.hive需要hdfs存储文件和MapReduce计算框架。