Hive 的架构
Hive 的核心驱动 Driver
(1) 解释器:解释器的作用是将 HiveSQL 语句转换为抽象语法树(AST)
(2) 编译器:编译器是将语法树编译为逻辑执行计划
(3) 优化器:优化器是将逻辑执行计划优化为更优逻辑计划
(4) 执行器:执行器是将逻辑计划切成对应引擎的可执行物理计划
执行流程简述
- 首先客户端或者命令行提交 hql 语句
- 在 Driver 中经过解释器将 hql 语句解析成抽象语法树 AST,比对 metaStore 中存储的元数据进行类型判断与语法分析
- 经过编译器将抽象语法树转化为一个逻辑计划 (存储在 hdfs 中)
- 经过优化器对该逻辑计划进行优化, 更新为最优逻辑计划
- 经过执行器将逻辑计划切成对应引擎 mr 的可执行物理计划
- 生成 MapReduce 任务并通过物理优化器优化后,运行在 hadoop 集群上