Hive基础介绍

HIVE基础介绍

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。
本质将SQL转换为MapReduce的任务进行运算,底层由HDFS来提供数据的存储,通常进行一次写多次读操作。

Hive优缺点

优点

  1. 接口采用类SQL语法,简单易上手
  2. 避免写MapReduce,减少开发人员学习成本
  3. 适合处理大数据,常用于对实时性要求不高的数据分析场合
  4. 支持自定义函数

缺点

  1. HQL表达能力有限,无法表达迭代式算法,不擅长数据挖掘
  2. 效率较低,自动生成的MR作业不够智能化,调优较困难,粒度不够细

Hive架构原理

Hive基础介绍
从MySQL中获得元数据,拼接之后得到数据存储地址,再根据HDFS读写原理去HDFS中获得数据

Hive和数据库比较

1. 查询语言: 查询语言类似

2. 数据存储位置: Hive数据存在HDFS中,数据库的数据存块设备或本地文件系统中

3. 数据更新: Hive 中数据多读少写,数据库中数据经常需要修改

4. 索引: Hive暴力扫描整个数据,无索引,数据库为数据建立索引

5. 执行: Hive大多通过hadoop提供的MR实现查询,数据库则通过自己的执行引擎

6. 执行延迟: Hive暴力扫描,采用MR,具有较高延迟,数据库建立索引,延迟较低,但Hive可并行处理大规模数据,而数据库可处理的数据规模十分有限

7. 可拓展性: Hive基于Hadoop,拓展性与Hadoop一致;数据库受ACID(事务管理)语义限制,最先进Oracle的理论拓展100台

8. 数据规模: Hive支持大规模数据,数据库可支持的数据规模较小