Hive是什么
hive是基于Hadoop的一个数据仓库工具,能够将结构化的数据映射成为一张表,提供类SQL的查询
本质是转化成mapReduce程序
为什么使用Hive
- 简单容易上手
- 对实时性要求不高的时候使用
- 适合处理大数据
- 可以自定义函数
架构
由上图可以看出一共由5个部分组成,Mapreduce和HDFS可以归属于Hadoop
- Client
- Meta Store:表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录等
- Driver:
- 解析器
- 优化器
- 编译器
- 执行器
- Hadoop:Hdfs用于存储,MapReduce用于计算
运行机制![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/0972b37867ef38a55cf6e0a69bc0c1fa.png)
hive接收到SQL语句,使用自己的Driver并结合元数据,将SQL翻译成mapReduce,提交到Hadoop中执行,最后将结果返回
Hive和数据库有哪些区别
- 数据存储位置:Hive是存储在HDFS上面,而其他数据库的存储位置一般为磁盘
- Hive不支持数据的修改 比如insert
- Hive没有索引
- 数据库有自己的执行引擎,而Hive是转成MapReduce
- 数据规模,HIve支持大数据
- HIve是建立在Hadoop之上的,所以Hadoop的可扩展性Hive同样拥有