Hive Hbase区别 整理

Hive是为了简化编写MapReduce程序而生的,使用MapReduce作过数据分析的人都知道,不少分析程序除业务逻辑不一样外,程序流程基本同样。在这种状况下,就须要Hive这样的用戶编程接口。Hive自己不存储和计算数据,它彻底依赖于HDFS和MapReduce,Hive中的表纯逻辑,就是些表的定义等,也就是表的元数据。使用SQL实现Hive是由于SQL你们都熟悉,转换成本低,相似做用的Pig就不是SQL。sql


HBase为查询而生的,它经过组织起节点內全部机器的內存,提供一個超大的內存Hash表,它须要组织本身的数据结构,包括磁盘和內存中的,而Hive是不作这个的,表在HBase中是物理表,而不是逻辑表,搜索引擎使用它來存储索引,以知足查询的实时性需求。数据库

hive相似CloudBase,也是基于hadoop分布式计算平台上的提供data warehouse的sql功能的一套软件。使得存储在hadoop里面的海量数据的汇总,即席查询简单化。hive提供了一套QL的查询语言,以sql为基础,使用起来很方便。
编程

HBase是一个分布式的基于列存储的非关系型数据库。HBase的查询效率很高,主要因为查询和展现结果。hive是分布式的关系型数据库。主要用来并行分布式 处理 大量数据。hive中的全部查询除了"select * from table;"都是须要经过Map\Reduce的方式来执行的。因为要走Map\Reduce,即便一个只有1行1列的表,若是不是经过select * from table;方式来查询的,可能也须要八、9秒。但hive比较擅长处理大量数据。当要处理的数据不少,而且Hadoop集群有足够的规模,这时就能体现出它的优点。数据结构

经过hive的存储接口,hive和Hbase能够整合使用。分布式


一、hive是sql语言,经过数据库的方式来操做hdfs文件系统,为了简化编程,底层计算方式为mapreduce。oop

二、hive是面向行存储的数据库。性能

三、Hive自己不存储和计算数据,它彻底依赖于HDFS和MapReduce,Hive中的表纯逻辑。搜索引擎

四、HBase为查询而生的,它经过组织起节点內全部机器的內存,提供一個超大的內存Hash表spa

五、hbase不是关系型数据库,而是一个在hdfs上开发的面向列的分布式数据库,不支持sql。orm

六、hbase是物理表,不是逻辑表,提供一个超大的内存hash表,搜索引擎经过它来存储索引,方便查询操做。

七、hbase是列存储。


Hive只供维护用,真正查起来很是很是慢的!

这是由于它的底层是要经过mapreduce分布式计算的,hbase、hive、pig底层都是这样的。但总体来讲hadoop仍是比较快的,由于它是进行海量数据存储和分布式计算,这个速度已经很不错了。


Hive和Hbase有各自不一样的特征:hive是高延迟、结构化和面向分析的,hbase是低延迟、非结构化和面向编程的。Hive数据仓库在hadoop上是高延迟的。


其中HBase位于结构化存储层,Hadoop HDFS为HBase提供了高可靠性的底层存储支持,Hadoop MapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和failover机制。

此外,Pig和Hive还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的很是简单。 Sqoop则为HBase提供了方便的RDBMS数据导入功能,使得传统数据库数据向HBase中迁移变的很是方便。

 

以为在问区别以前,我应该显示说相同点,这么一想,又糊涂了,hive和hbase哪里像了,好像哪里都不像,既然哪里都不像,又何来的“区别是什么”这一问题,他俩全部的都算区别。
那么,hive是什么?
白话一点再加不严格一点,hive能够认为是map-reduce的一个包装。hive的意义就是把好写的hive的sql转换为复杂难写的map-reduce程序。
因而,hbase是什么?
一样白话一点加不严格一点,hbase能够认为是hdfs的一个包装。他的本质是数据存储,是个NoSql数据库;hbase部署于hdfs之上,而且克服了hdfs在随机读写方面的缺点。
因此要问hive和hbase的区别,就应该问问map-reduce和hdfs之间的区别,问区别,就要先说说他俩哪里像。
因而,你说map-reduce和hdfs哪里像了呢?

相关文章
相关标签/搜索