Hive和HBase区别

1 篇文章 0 订阅
1 篇文章 0 订阅
Hive VS HBase
Hive是建立在Hadoop之上为了 减少MapReduce jobs编写工作 的批处理系统,HBase是为了支持 弥补Hadoop对实时操作 的缺陷的项目 。
想象你在操作RMDB数据库,如果是 全表扫描 ,就用Hive+Hadoop,如果是 索引访问 ,就用HBase+Hadoop 。
Hive query就是MapReduce jobs可以从5分钟到数小时不止,HBase是非常高效的,肯定比Hive高效的多。

Hive是为了 简化编写MapReduce程序 而生的,使用MapReduce做过数据分析的人都知道,很多分析程序除业务逻辑不同外,程序流程基本一样。在这种情况下,就需要Hive这样的用戶编程接口。Hive本身不存储和计算数据,它完全依赖于HDFS和MapReduce,Hive中的表纯逻辑,就是些表的定义等,也就是表的元数据。使用SQL实现Hive是因为SQL大家都熟悉,转换成本低,类似作用的Pig就不是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;方式来查询的,可能也需要8、9秒。但hive比较擅长处理大量数据。当要处理的数据很多,并且Hadoop集群有足够的规模,这时就能体现出它的优势。
通过hive的存储接口,hive和Hbase可以整合使用。

1、hive是sql语言,通过数据库的方式来操作hdfs文件系统,为了简化编程,底层计算方式为mapreduce。
2、hive是面向 行存储 的数据库。
3、Hive本身不存储和计算数据,它完全依赖于HDFS和MapReduce,Hive中的表纯逻辑。
4、HBase为查询而生的,它通过组织起节点內所有机器的內存,提供一個超大的內存Hash表
5、hbase不是关系型数据库,而是一个在hdfs上开发的面向列的分布式数据库,不支持sql。
6、hbase是物理表,不是逻辑表,提供一个超大的内存hash表,搜索引擎通过它来存储索引,方便查询操作。
7、hbase是 列存储

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

转:
觉得在问区别之前,我应该显示说相同点,这么一想,又糊涂了,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哪里像了呢?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值