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

概念

Hive

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

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

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

HBase

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

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

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

共同点

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

区别

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

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

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

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

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

关系

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

流程:

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

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

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

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

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

最新文章

  1. Python【7】-数据分析准备
  2. Cookie的设置与获取
  3. Android海康监控视频调用demo
  4. Hash Length Extension Attacks
  5. Oracle 的表备份的方法
  6. json对象,数组,字符串总结
  7. MySQL字符串转日期类型
  8. Why does uitableview cell remain highlighted?
  9. Oracle自带的用户
  10. Student's Morning
  11. G - Island Transport - hdu 4280(最大流)
  12. Visual Studio 必备神器---转
  13. 101个Linq例子(40-60)
  14. 简说JS中的循环部分
  15. JavaScript语法基础:数组的常用方法详解
  16. python 类的绑定方法和非绑定方法
  17. ABP框架系列之二十八:(Handling-Exceptions-异常处理)
  18. TeamViewer app案例分析
  19. Xsolla和Crytek合作,对游戏战争前线推出全新支付方式
  20. C#语言各个版本特性(一)

热门文章

  1. 11.20 dom 浏览器对象模型
  2. HTML——VSCODE配置笔记
  3. Leetcode本地阅读器开发--01界面设计一
  4. python机器学习——PCA降维算法
  5. ssh通过sock5的问题kex_exchange_identification: Connection closed by remote host
  6. 【JavaScript】JS写法随笔(三) JS联动设置元素默认值
  7. 【逆向】Magniber 勒索软件样本分析
  8. Java基础Day7-值传递和引用传递
  9. 3月1日Android开学学习
  10. JAVA设计模式及其设计原则