HBase、ES、Hive

HBase是一个分布式的、面向列的数据库,具有存储海量数据、快速随机访问、进行大量改写操作的优点。它介于NOSQL和RDBMS之间,仅能通过主键(row key)和主键的range来检索数据,仅支持单行事务。主要用来存储非结构化和半结构化的松散数据。与hadoop一样,Hbase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。

ES是面向文档(document oriented)的,可以存储整个对象或文档(document),并且能索引(index)每个文档的内容使之可以被搜索。在ES中,可以对文档进行索引、搜索、排序、过滤。这种理解数据的方式与以往完全不同,这也是ES能够执行复杂的全文搜索的原因之一。

HBase和ES在查询复杂度上对比:HBase支持简单的行或者range查询,比如给一个PK查该行的数据,或者给一个begin/end查这个范围的数据,如果想完成更复杂的功能就不太容易。而ES支持的查询比较丰富,或者说这些查询都带有一点复杂计算。HBase和ES在查询数据量上对比:两者都是支持海量数据的,HBase可能更容易支持更多的数据,因为其一开始设计就是解决海量问题的;而ES是后来慢慢增强其存储扩展性的。HBase和ES在维护性对比:HBase基于Hadoop,组件多,维护起来代价高,而ES自成体系,维护起来稍微好点。

Hive是基于Hadoop的数据仓库工具,提供类SQL语法,其本质是将SQL语句转换为MapReduce任务运行,使不熟悉MapReduce的用户很方便地利用HQL处理和计算HDFS上的结构化的数据,适用于离线的批量数据计算。以MR作为计算引擎,HDFS作为存储系统,它提供超大数据集的计算、扩展能力。

​​​​​​​ Hive和HBase的区别

Hive

Hbase

Hive是建立在Hadoop之上为了降低MapReduce编程复杂度的ETL工具

HBase是为了弥补Hadoop对实时操作的缺陷

Hive表是纯逻辑表,因为Hive的本身并不能做数据存储和计算,而是完全依赖Hadoop

HBase是物理表,提供了一张超大的内存Hash表来存储索引,方便查询

Hive是数据仓库工具,需要全表扫描,就用Hive,因为Hive是文件存储

HBase是数据库,需要索引访问,则用HBase,因为HBase是面向列的NoSQL数据库

Hive表中存入数据(文件)时不做校验,属于读模式存储系统

HBase表插入数据时,会和RDBMS一样做Schema校验,所以属于写模式存储系统

Hive不支持单行记录操作,数据处理依靠MapReduce,操作延时高

HBase支持单行记录的CRUD,并且是实时处理,效率比Hive高得多

Original: https://blog.csdn.net/s_10086/article/details/126883705
Author: 安东尼奥!
Title: HBase、ES、Hive

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/817865/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球