Hive与HBase之间的区别和联系

1.Hive概念

首先要知道Hive和HBase两者的区别,我们必须要知道两者的作用和在大数据中扮演的角色

  • Hive是hadoop数据仓库管理工具,严格来说,不是数据库,本身是不存储数据和处理数据的,其依赖于HDFS存储数据,依赖于MapReducer进行数据处理。

  • Hive的优点是学习成本低,可以通过类SQL语句(HSQL)快速实现简单的MR任务,不必开发专门的MR程序。

  • 由于Hive是依赖于MapReducer处理数据的,因此有很高的延迟性,不适用于实时数据处理(数据查询,数据插入,数据分析),适用于离线数据的批处理。

2.HBase

  • HBase是一种分布式、可扩展、支持海量数据存储的NOSQL数据库

  • HBase主要适用于海量数据的实时数据处理(随机读写)

  • 由于HDFS不支持随机读写,而HBase正是为此而诞生的,弥补了HDFS的不可随机读写。

3.共同点

  • hbase与hive都是架构在hadoop之上的。都是用HDFS作为底层存储。

4.区别

  • Hive是建立在Hadoop之上为了减少MapReduce jobs编写工作的批处理系统,HBase是为了支持弥补Hadoop对实时操作的缺陷的项目 。总的来说,hive是适用于离线数据的批处理,hbase是适用于实时数据的处理。

  • Hive本身不存储和计算数据,它完全依赖于HDFS存储数据和MapReduce处理数据,Hive中的表纯逻辑。

  • hbase是物理表,不是逻辑表,提供一个超大的内存hash表,搜索引擎通过它来存储索引,方便查询操作。

  • 由于HDFS的不可随机读写,hive是不支持随机写操作,而hbase支持随机写入操作。

  • HBase只支持简单的键查询,不支持复杂的条件查询

4.关系

在大数据架构中,Hive和HBase是协作关系,这里就举例一种常用的协作关系,具体流程如下图:
在这里插入图片描述

5 流程:

  • Hive创建一张外部表与HBase表关联,因此只需对Hive表进行查询即可,Hive表会自动从关联的HBase表中获取数据

  • 采集的数据保存到HBase表,因为HBase表支持随机写操作,这个可以根据业务需求决定

  • Hive通过HSQ语句创建MR任务去处理分析数据

  • MR将分析的结果最终存储到常用的数据库(Mysql数据库)

  • web端从数据库获取数据进行可视化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值