Hive基础介绍
HIVE基础介绍
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。
其本质是将SQL转换为MapReduce的任务进行运算,底层由HDFS来提供数据的存储,通常进行一次写多次读操作。
Hive优缺点
优点
- 接口采用
类SQL语法
,简单易上手 - 避免写MapReduce,减少开发人员学习成本
- 适合
处理大数据
,常用于对实时性要求不高
的数据分析场合 - 支持自定义函数
缺点
- HQL表达能力有限,
无法表达迭代式算法,不擅长数据挖掘
- 效率较低,自动生成的MR作业
不够智能化,调优较困难
,粒度不够细
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支持大规模数据,数据库可支持的数据规模较小