作者: 幻好
概述
通过学习 Apache Hive 基础知识和 HIve SQL 后,能够了解到 Hive 是将 SQL 语句通过底层转换生成 MR 程序进行工作,为了能对 Hive 能有一个更加深入的认识,还需要深入理解 Hive SQL 的执行原理。 本文将通过对于 Hive 底层执行原理的深入解读,帮助读者对于 Hive 的作用有更深入的理解。
Hive 底层原理
在使用 Hive 进行日常需求开发使用后,能够大概了解 Hive 是将 SQL 语句通过底层转换生成 MR 程序进行工作,为了能对 Hive 能有一个更加深入的认识,还需要深入理解 Hive SQL 的执行原理。
Hive 执行架构
Hive 是基于 Hadoop 进行交互工作的,所以根据 Hive 的整个工作的流程可以有以下架构图:
核心组件
根据上图,可知 Hive 工作执行中包含以下5个组件:
- UI(用户界面):可看作我们提交 SQL 语句的命令行界面。
- DRIVER(驱动程序):接收查询的组件。该组件实现了会话句柄的概念。
- COMPILER(编译器):负责将 SQL 转化为平台可执行的执行计划。对不同的查询块和查询表达式进行语义分析,并最终借助表和从 META STORE 查找的分区元数据来生成执行计划。
- META STORE(元数据库):存储 Hive 中各种表和分区的所有结构信息。