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,供应用实时查询。两者搭配使用,可以构建高效稳定的数据分析和查询系统。

相关推荐
江畔独步3 小时前
Hive内置集合函数-size,map_keys,map_values,sort_array,array_contains
数据仓库·hive·hadoop
天地风雷水火山泽3 小时前
二百六十五、Hive——目前Hive数仓各层表样例
数据仓库·hive·hadoop
棉花糖灬3 小时前
Hive常用函数
数据仓库·hive·hadoop
isNotNullX13 小时前
HBase在大数据实时处理中的角色
大数据·数据库·hbase
mizuhokaga1 天前
Hive parquet表通过csv文件导入数据
数据仓库·hive·hadoop
陈小唬1 天前
云服务器docker中Hbase整合java-api需要放行的接口
服务器·docker·hbase
全栈弟弟1 天前
高级大数据开发协会
大数据·数据仓库·hadoop·flink·spark
lzhlizihang1 天前
Hadoop的一些高频面试题 --- hdfs、mapreduce以及yarn的面试题
大数据·hadoop·hdfs·mapreduce·面试题·yarn
楠奕1 天前
linux hadoop-3.3.6 hbase-2.5.7
linux·hadoop·hbase