hbase和hive的差别是啥,各自适用在啥场景中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hbase和hive的差别是啥,各自适用在啥场景中相关的知识,希望对你有一定的参考价值。

1. Hive中的表是纯逻辑表,就只是表的定义等,即表的元数据。Hive本身不存储数据,它完全依赖HDFS和MapReduce。这样就可以将结构化的数据文件映射为为一张数据库表,并提供完整的SQL查询功能,并将SQL语句最终转换为MapReduce任务进行运行。 而HBase表是物理表,适合存放非结构化的数据。
2. Hive是基于MapReduce来处理数据,而MapReduce处理数据是基于行的模式;HBase处理数据是基于列的而不是基于行的模式,适合海量数据的随机访问。
3. HBase的表是疏松的存储的,因此用户可以给行定义各种不同的列;而Hive表是稠密型,即定义多少列,每一行有存储固定列数的数据。
4. Hive使用Hadoop来分析处理数据,而Hadoop系统是批处理系统,因此不能保证处理的低迟延问题;而HBase是近实时系统,支持实时查询。
5. Hive不提供row-level的更新,它适用于大量append-only数据集(如日志)的批任务处理。而基于HBase的查询,支持和row-level的更新。
6. Hive提供完整的SQL实现,通常被用来做一些基于历史数据的挖掘、分析。而HBase不适用与有join,多级索引,表关系复杂的应用场景。
参考技术A 全不同应用场景吧,HBase 速度比 Hive 快了不知道多少。HBase 是非关系型数据库(KV型), 对 key 做索引,查询速度非常快(相比较 Hive ),适合实时查询;而Hive是关系型数据结构,适合做后期数据分析。和单机的mysql,Oracle比较的话,Hive的优点是可以存储海量数据,只是查询速度比较慢。

hdfs hbase hive hbase分别的适用场景

加米谷,您的人生充电站


Hive

不想用程序语言开发MapReduce的朋友,熟悉SQL的朋友可以使用Hive开离线的进行数据处理与分析工作。


注意Hive现在适合在离线下进行数据的操作,就是说不适合在挂在真实的生产环境中进行实时的在线查询或操作,因为一字“慢”。相反起源于FaceBook,Hive在Hadoop中扮演数据仓库的角色。建立在Hadoop集群的最顶层,对存储在Hadoop群上的数据提供类SQL的接口进行操作。你可以用 HiveQL进行select,join,等等操作。


如果你有数据仓库的需求并且你擅长写SQL并且不想写MapReduce jobs就可以用Hive代替。

hdfs hbase hive hbase分别的适用场景
HBase

HBase作为面向列的数据库运行在HDFS之上,HDFS缺乏随即读写操作,HBase正是为此而出现。HBase以Google BigTable为蓝本,以键值对的形式存储。项目的目标就是快速在主机内数十亿行数据中定位所需的数据并访问它。


HBase是一个数据库,一个NoSql的数据库,像其他数据库一样提供随即读写功能,Hadoop不能满足实时需要,HBase正可以满足。如果你需要实时访问一些数据,就把它存入HBase。

你可以用Hadoop作为静态数据仓库,HBase作为数据存储,放那些进行一些操作会改变的数据。


hbase与hive都是架构在hadoop之上的。都是用hadoop作为底层存储。而hbase是作为分布式数据库,而hive是作为分布式数据仓库。当然hive还是借用hadoop的MapReduce来完成一些hive中的命令的执行

hdfs hbase hive hbase分别的适用场景

什么场景下应用Hbase?

成熟的数据分析主题,查询模式已经确立,并且不会轻易改变。

传统的关系型数据库已经无法承受负荷,高速插入,大量读取。

适合海量的,但同时也是简单的操作(例如:key-value)。

hdfs hbase hive hbase分别的适用场景

Pig VS Hive

Hive更适合于数据仓库的任务,Hive主要用于静态的结构以及需要经常分析的工作。Hive与SQL相似促使 其成为Hadoop与其他BI工具结合的理想交集。


Pig赋予开发人员在大数据集领域更多的灵活性,并允许开发简洁的脚本用于转换数据流以便嵌入到较大的 应用程序。


Pig相比Hive相对轻量,它主要的优势是相比于直接使用Hadoop Java APIs可大幅削减代码量。正因为如此,Pig仍然是吸引大量的软件开发人员。


Hive和Pig都可以与HBase组合使用,Hive和Pig还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的非常简单

hdfs hbase hive hbase分别的适用场景

Hive VS HBase

Hive是建立在Hadoop之上为了减少MapReduce jobs编写工作的批处理系统,HBase是为了支持弥补Hadoop对实时操作的缺陷的项目 。


想象你在操作RMDB数据库,如果是全表扫描,就用Hive+Hadoop,如果是索引访问,就用HBase+Hadoop 。


Hive query就是MapReduce jobs可以从5分钟到数小时不止,HBase是非常高效的,肯定比Hive高效的多

hdfs hbase hive hbase分别的适用场景

成都加米谷大数据科技有限公司,一家专注于大数据人才培养的机构。由来自阿里、华为、京东、星环等国内知名企业的多位技术大牛联合创办,技术底蕴丰厚,勤奋创新,精通主流前沿大数据及人工智能相关技术。面向社会提供大数据、人工智能等前沿技术的培训业务。

成都加米谷大数据科技有限公司

个人培训 丨 企业内训

成都市高新区天府二街蜀都中心1栋705

以上是关于hbase和hive的差别是啥,各自适用在啥场景中的主要内容,如果未能解决你的问题,请参考以下文章

福利浅谈Hbase和Hive的区别以及分别适用的场景(内附大数据资料)

hdfs hbase hive hbase分别的适用场景

HIVE和HBASE区别11

Hive面试准备

Hive与HBase区别

HBase实战 | Hive数据导入云HBase