{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

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

wizChenwizChen 回答0 收藏1
收藏问题

5条回答

monw3c

monw3c

回答于2022-06-28 14:56

一、区别

1、Hbase: 基于Hadoop数据库,是一种NoSQL数据库;HBase表是物理表,适合存放非结构化的数据。

2、hive:本身不存储数据,通过SQL来计算和处理HDFS上的结构化数据,依赖HDFS和MapReduce;hive中的表是纯逻辑表。

Hbase主要解决实时数据查询问题,

Hive主要解决数据处理和计算问题,

二者通常协作配合使用。

二、适用场景

1、Hbase:海量明细数据的随机实时查询,采集的网页数据存储;

2、hive:适用于离线的批量数据计算,一般用于查询分析统计。

评论0 赞同0
  •  加载中...
bergwhite

bergwhite

回答于2022-06-28 14:56

这两个东西我都用过一段时间,很高兴一起来讨论这个问题。

首先来说一下这两者都是hadoop大数据生态圈中的一员。底层的数据存储都是使用的hdfs,除此之外其实两者的关系并不大。

下面简单的分别说一下两者

Hbase



1. Hbase的本质就是一个数据库,一个nosql

2. 是一个具有主备模式、分布式、可动态增删节点的分布式存储系统

3.厉害之处:使用普通的硬件配置,实现了存储并处理大量的数据

4. 特定 是列式存储,所以是nosql

hive



1.hive不能算做是数据库,只能是hadoop的一个数据仓库工具,

2 .可以将结构化的数据文件映射为一张 数据库表

3.提供了HQL(类sql)查询功能

4.在操作时,实际上是利用MapReduce去处理hdfs的数据

综合区别

1. hive是为了简化MapReduce而用的,并不是用类存放数据的,本质上还是在做运算,

Hbase是真正的数据库,是用来存放超大量数据的,且插入、查询速度极快

2.用途:hive用来做数据统计分析,分析hdfs数据

hbase用来做分布式nosql数据库

上述就是对两者的介绍和区别,欢迎大家评论讨论! 关爱程序媛!!!祝大家出任CTO,喜欢的欢迎关注,点赞!!!哈哈。

评论0 赞同0
  •  加载中...
fjcgreat

fjcgreat

回答于2022-06-28 14:56

Hbase是什么?

Hbase是一个架构在Hdfs文件系统上的列式存储,是开源的,分布式,面向列的数据库。适合于非结构化数据存储的数据库。

Hbase是一个高可靠、高性能、面向列、可伸缩的分布式存储系统,可以在廉价的PC Server搭建大规模结构化存储集群.

1,HBase位于Hadoop生态系统的结构化存储层。


2,HDFS作为其底层的文件存储

3,MapReduct为Hbase提供高性能的计算能力

4,Zookeeper为HBase提供了稳定的服务和failover的能力

Hive是什么?

hive是一个基于Hadoop的一个数据仓库工具。可以将结构化数据映射为一张数据库表,并且提供sql的查询能力,可以将sql换换为MapReduce任务进行。

下面我们看看Hive的架构图:

1,用户接口,hive主要有三个接口,CLI(CLI启动的时候会同时气筒一个Hive的副本),Client(hive的客户端,连结hive server),web UI(通过浏览器访问)

2,元数据存储,hive将元数据存储在数据库中如:mysql。

3,Driver(解释器、编译器、优化器、执行器):完成词法分析,语法分析,优化,编译,优化以及查询计划的生成,随后由MapReduce使用。

4,Hadoop ,hive的数据存储在Hdfs中。大部分的查询由MapReduce完成。

Hbase


上面我们分别看了Hbase的特点,hive的特点,那么Hbase和Hive的差别是什么以及各自的使用场景是什么?

Hbase和Hive 二者都是以Hdfs为文件存储。

Hbase支持列扩展,可以对单元格修改。采取K-V的设计,因此查询效率比较高,一般用于延迟忍耐低的场景;还有就是经常需要扩展属性,修改属性场景。

Hbase的查询一般通过命令窗口进行,语句比较负责,但是hive的采用标准的sql语法,门槛低,上手简单。当然Hbase也有Phoenix可以去支持 sql这样的语法操作。

下面看看hbase具体的应用场景:

千万并发、PB存储、KV基础存储、动态列、强同步、稀疏表、二级索引、SQL



对象存储:头条类、新闻类的的新闻、网页、图片存储在HBase之中,一些病毒公司的病毒库也是存储在HBase之中。

时序数据:HBase之上有OpenTSDB模块,可以满足时序类场景的需求。

推荐画像:用户的画像,是一个比较大的稀疏矩阵。蚂蚁的风控就是构建在HBase之上。

时空数据:主要是轨迹、气象网格之类,滴滴打车的轨迹数据主要存在HBase之中,另外在技术所有大一点的数据量的车联网企业,数据都是存在HBase之中

CubeDB OLAP:Kylin一个cube分析工具,底层的数据就是存储在HBase之中,不少客户自己基于离线计算构建cube存储在hbase之中,满足在线报表查询的需求。

消息/订单:在电信领域、银行领域,不少的订单查询底层的存储,另外不少通信、消息同步的应用构建在HBase之上。

消息/订单:在电信领域、银行领域,不少的订单查询底层的存储,另外不少通信、消息同步的应用构建在HBase之上。


Hive 不能支持列扩展,支持追加,好像在新版本中可以支持修改,但是效率比较低。Hive处理的数据的吞吐量高,文件越大,hive的优势就约明显。一半用于 延迟忍耐高的场景。

下面再来看看Hive的具体使用场景:

1,分析网络日志。

2,ETL清洗数据。

3,构建数据仓库。

4,数据挖掘

那么Hbase和Hive在具体的使用场景各自在什么位置呢?我们可以通过下图来了解下:

通过ETL工具将数据源抽取到HDFS存储,通过hive清洗处理和计算原始数据,对数据进行标准化,统一化。如果是面向海量的查询场景可以存储Hbase,数据应用从Hbase中查询数据。


最后在总结:Hbase和Hive本身都不能存储数据。二者都是对Hdfs上的文件在做了一次组织。从而适应不同的场景。Hbase 在与查询,动态列场景更有优势,但是无法进行数据分析和挖掘。二Hive本身无法在低延迟的场景下使用。Hive可以处理大量数据的ETL清洗。构建统一的标准的数据仓库,从而提供基础数据,共上层数据分析。所以hive更加偏向于数据分析。


数据僧,祝愿每个在数据道路上的人越走越好。欢迎大家在评论区留言,大家一起讨论。

评论0 赞同0
  •  加载中...
starsfun

starsfun

回答于2022-06-28 14:56

HBase是一个数据模型,类似于Google的大表,旨在提供对大量结构化数据的快速随机访问。本教程提供了HBase的介绍,在Hadoop文件系统上设置HBase的过程以及与HBase shell交互的方法。它还介绍了如何使用java连接到HBase,以及如何使用java执行HBase的基本操作。http://codingdict.com/article/8125


Hive是一个数据仓库基础设施工具,用于处理Hadoop中的结构化数据。它位于Hadoop的顶部,用于汇总大数据,并使查询和分析变得轻松。这是一个简短的教程,介绍如何将Apache Hive HiveQL与Hadoop分布式文件系统结合使用。本教程可以成为您成为Hive成功Hadoop开发人员的第一步。http://codingdict.com/article/8149

评论0 赞同0
  •  加载中...
tyheist

tyheist

回答于2022-06-28 14:56

要给你回答这两个所有的底层为不太合适、我就给你举一个易懂的例子。


Hbase 对应就的就是 Mongodb 非关系型数据

Hive 对应的就是 Mysql 关系型数据库


如果你要深入研究、单单一个组件都能让你随便研究一年。

所以先从业务出发去考虑使用哪个、量上来了再研究优化。

评论0 赞同0
  •  加载中...

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<