觉得是快乐

2020-09-05   阅读量: 2542

大数据 hive hbase

hive和hbase区别

扫码加入数据分析学习群

Hive中的表是纯逻辑表,就只是表的定义等,即表的元数据。Hive本身不存储数据,它完全依赖HDFS和MapReduce。这样就可以将结构化的数据文件映射为为一张数据库表,并提供完整的SQL查询功能,并将SQL语句最终转换为MapReduce任务进行运行。 而HBase表是物理表,适合存放非结构化的数据。



1. 两者分别是什么?

Apache Hive是数据仓库。通过Hive可以使用HQL语言查询存放在HDFS上的数据。HQL是一种类SQL语言,这种语言最终被转化为Map/Reduce. 虽然Hive提供了SQL查询功能,但是Hive不能够进行交互查询--因为它是基于MapReduce算法。
Apache Hbase Key/Value,基础单元是cell,它运行在HDFS之上。和Hive不一样,Hbase的能够在它的数据库上实时运行,而不是运行MapReduce任务,。
2. 两者的特点
Hive帮助熟悉SQL的人运行MapReduce任务。因为它是JDBC兼容的。运行Hive查询会花费很长时间,因为它会默认遍历表中所有的数据。但可以通过Hive的分区来控制。因为这样一来文件大小是固定的,就这么大一块存储空间,从固定空间里查数据是很快的。
HBase通过存储key/value来工作。注意版本的功能。


4. 应用场景
Hive适合用来对一段时间内的数据进行分析查询,例如,用来计算趋势或者网站的日志。Hive不应该用来进行实时的查询。因为它需要很长时间才可以返回结果。
Hbase非常适合用来进行大数据的实时查询。Facebook用Hbase进行消息和实时的分析。它也可以用来统计Facebook的连接数。
5. 总结
Hive和Hbase是两种基于Hadoop的不同技术--Hive是一种类SQL的引擎,可以直接将文件转成数据库。并且运行MapReduce任务,Hbase是一种在Hadoop之上的NoSQL 的Key/vale数据库。Hive可以用来进行统计查询,HBase可以用来进行实时查询。数据也可以从Hive写到Hbase,再从Hbase写回Hive。


53.9995 3 3 关注作者 收藏

评论(3)

coohua
2020-09-07

1599465998_183172.jpg

0.0000 0 0 回复
coohua
2020-09-07

1599465869_615277.jpg

0.0000 0 0 回复
coohua
2020-09-07

ui灰灰星球壁纸原图.jpg

0.0000 0 0 回复

推荐课程