Hive与Hbase,傻傻分不清

同期文章:

HDFS知识体系(知其然,知其所以然) - 掘金 (juejin.cn)

YARN:分布式资源管理框架 - 掘金 (juejin.cn)

一文了解MapReduce的前世今生 - 掘金 (juejin.cn)

一文了解Hive的前世今生 - 掘金 (juejin.cn)

一文初探Hbase - 掘金 (juejin.cn)

在学大数据内容的过程中,Hive和HBase是两个非常重要的内容,对于初学者而言容易混淆。所以通过对比的方法,能够帮助我们对这两个组件有一个清晰的认识和定位。

首先还要从两者的概念入手。

一、 Hive与Hbase分别是什么

Hive

Hive是运行在Hadoop上的一个工具,准确地讲是一个搜索工具。

当对海量数据进行搜索时,Hadoop的计算引擎是MapReduce。但是对MapReduce的操作和编程是非常复杂的。于是Hive的存在就让复杂的编程过程简化成了用SQL语言对海量数据的操作。这大大减轻了程序员的工作量。可以说,Hive的存在让海量数据的增删改查更加方便。

其实从Hive的logo就可以看出Hive让大象变成了小蜜蜂,化繁为简是它最本质的亮点。

Hbase

再来说说HBase,它是Hadoop的子项目,当然也可以理解为一个工具。

Hadoop的数据运算是由MapReduce完成的,而数据存储是由HDFS完成的。HDFS是分布式存储,这是Hadoop存储数据的特点,但由此带来的问题就是数据的无序和散乱。

HBase的产生,很好地解决了这一问题。HBase能够把这些数据映射成一张哈希表,那么,这些数据一旦成为具有实际存储意义的表之后,就由无序变得有序,从而对数据搜索和操作的效率大大提高了

总结

hive可以认为是MapReduce的一个包装。hive的意义就是把好写的hive的sql转换为复杂难写的MapReduce程序。

hbase可以认为是HDFS的一个包装。他的本质是数据存储,是个NoSql数据库;hbase部署于HDFS之上,并且克服了hdfs在随机读写方面的缺点。

二、 Hive与Hbase的联系与区别

相同点

HBase 和 Hive 都是架构在 Hadoop 之上,用 HDFS 做底层的数据存储,用 MapReduce 做数据计算

所以这俩玩意儿真的很不一样。

不同点

对比项 Hive HBase
设计初衷 为分析而生的ETL工具,降低MapReduce编程复杂度 为查询而生的NoSQL数据库,弥补Hadoop不支持实时查询的缺陷
数据存储 纯逻辑表,依赖HDFS存储 物理表,在HDFS上构建超大内存Hash表存储索引
存储方式 行式存储 列式存储,准确来说是列族存储
数据类型 只适用结构化数据 适合结构化和半结构化数据
查询语言 支持SQL查询 不支持SQL,有自己的查询语言
查询方式 基于MapReduce批处理,不支持单行记录操作,延迟较高 单行记录的实时CRUD,响应速度快
优势 简化MapReduce编程,通过SQL实现数据分析和ETL 高效的实时查询和读写操作
适用场景 离线数据分析、数据仓库 频繁的在线查询和事务处理

三、适用场景

Hive和HBase各自的优势决定了它们不同的适用场景。

Hive使用Hadoop进行批处理,所以适合对历史数据进行分析挖掘。它全面支持SQL查询,可以处理复杂的表关系,进行聚合分组等分析操作。但是存在数据延时的问题,不适合实时查询和频繁的CRUD操作。

Hbase是以key-value形式存储的准实时数据库,支持对大量数据的实时查询和访问。它适合日志存储、内容管理系统等不需要完全结构化的数据的存储。但不适合多表关联、多级索引等复杂关系的应用场景。

总体来说,Hive更适合用于离线的大数据分析和数据仓库应用,利用SQL查询进行数据挖掘;HBase更适合频繁的在线事务处理,需要快速查询和访问大量数据的应用场景。

两者可以很好地配合使用:Hive进行批量的复杂数据分析,HBase存储频繁查询的热点数据。Hive输出的分析结果可以写入HBase,供应用实时查询。两者搭配使用,可以构建高效稳定的数据分析和查询系统。

相关推荐
Yz98764 小时前
hive的存储格式
大数据·数据库·数据仓库·hive·hadoop·数据库开发
武子康4 小时前
大数据-230 离线数仓 - ODS层的构建 Hive处理 UDF 与 SerDe 处理 与 当前总结
java·大数据·数据仓库·hive·hadoop·sql·hdfs
武子康4 小时前
大数据-231 离线数仓 - DWS 层、ADS 层的创建 Hive 执行脚本
java·大数据·数据仓库·hive·hadoop·mysql
JessieZeng aaa16 小时前
CSV文件数据导入hive
数据仓库·hive·hadoop
Yz98761 天前
hive复杂数据类型Array & Map & Struct & 炸裂函数explode
大数据·数据库·数据仓库·hive·hadoop·数据库开发·big data
EDG Zmjjkk1 天前
Hive 函数(实例操作版2)
数据仓库·hive·hadoop
那一抹阳光多灿烂2 天前
Spark核心组件解析:Executor、RDD与缓存优化
hadoop·spark
Yz98762 天前
Hive分桶超详细!!!
大数据·数据仓库·hive·hadoop·hdfs·数据库开发·big data
Francek Chen2 天前
【大数据技术基础 | 实验十一】Hive实验:新建Hive表
大数据·数据仓库·hive·hadoop·分布式
出发行进2 天前
Flink错误:一historyserver无法启动,二存在的文件会报错没有那个文件或目录
大数据·linux·hadoop·flink·虚拟机