概念简述

Hive: 将SQL转换为MapReduce任务的工具,底层由HDFS来提供数据存储

数仓(Data Warehouse): 面向分析、集成的数据集合。数仓本身不产生数据,存储了大量数据。分析处理用Hive

Hive和RDBMS

Hive采用了类似SQL的查询语句HQL,因此很容易将Hive理解为数据库。
  1. 查询语言相似:
  2. HQL <==> SQL 高度相似
  3. 数据规模:
  4. Hive存储海量数据;RDBMS只能处理有限的数据集
  5. Hive在集群上利用MapReduce计算;RDBMS支持数据规模小
  6. 执行引擎: (Hive无索引)
  7. Hive的引擎是MR/Tez/Spark/Flink,大多数查询时通过Hadoop提供的MapReduce来实现的
  8. RDBMS使用自己的引擎:比如NO-SQL
  9. 数据存储:
  10. Hive保存在HDFS
  11. RDBMS保存在本地文件系统
  12. 可扩展性:
  13. Hive支持水平扩展
  14. RDBMS不友好,最多Oracle理论上100
  15. 数据更新:
  16. Hive内容读多写少,不建议对数据改写
  17. RDBMS数据需要频繁、快速的进行更新

Hive优缺点

  1. Hive优点
  2. 处理海量数据.底层使用MapReduce
  3. 系统可以水平扩展.低层基于Hadoop
  4. 功能可扩展.Hive允许用户自定义函数
  5. 良好的容错性.某个结点发生故障,HQL依然可以完成
  6. 统一的元数据管理.元数据:表/字段/字段类型
  7. Hive缺点
  8. HQL表达能力有限
  9. 迭代计算无法表达
  10. Hive执行效率不高(基于MR的引擎)
  11. Hive自动生成的MapReduce作业,不够智能
  12. Hive调优困难

Hive架构

image.png