07-Hive基础
分类:
文章
•
2024-10-04 18:35:28
1.Hive简介
1.1Hive的特点
- Hive:由 Facebook 开源用于解决海量结构化日志的数据统计。
- Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类 SQL 查询功能。
本质是:将 HQL 转化成 MapReduce 程序
- Hive 处理的数据存储在 HDFS
- Hive 分析数据底层的默认实现是 MapReduce
- 执行程序运行在 Yarn 上
1.2HIve的优缺点
- 优点:
类似SQL语句,减少了学习成本
适合处理大数据,常用于实时性不高的数据分析
支持用户自定义函数,用户根据需求定义函数
- 缺点:
迭代式算法无法表达
数据挖掘方面不擅长
调优困难,粒度较粗
2.Hive内部原理
2.1Hive的架构

2.1.1Client(用户接口)
- CLI(hive shell)、JDBC/ODBC(java 访问 hive)、WEBUI(浏览器访问 hive)
2.1.2Metastore(元数据)
- 元数据包括:表名、表所属的数据库(默认是 default)、表的拥有者、列/分区字段、表
的类型(是否是外部表)、表的数据所在目录等;
2.1.3Driver(驱动器)
- 解析器(SQL Parser):将 SQL 字符串转换成抽象语法树 AST,这一步一般都用第三方工具库完成,比如 antlr;对 AST 进行语法分析,比如表是否存在、字段是否存在、SQL 语义是否有误。
- 编译器(Physical Plan):将 AST 编译生成逻辑执行计划。
- 优化器(Query Optimizer):对逻辑执行计划进行优化。
- 执行器(Execution):把逻辑执行计划转换成可以运行的物理计划。对于 Hive 来
说,就是 MR/Spark。
2.2Hive运行机制
3.HiveAPI操作