目录
9.3.1 SQL语句转换成MapReduce作业的基本原理
9.3.2 Hive中SQL查询转换成MapReduce作业的过程
9.2 Hive系统架构
9.3 Hive工作原理
Hive执行引擎可以是MapReduce、Tez或Spark,这里只介绍MapReduce作为执行引擎时的Hive工作原理。主要包括下面两个内容:
9.3.1 SQL语句转换成MapReduce作业的基本原理
9.3.2 Hive中SQL查询转换成MapReduce作业的过程
当用户向
Hive
输入一段命令或查询时,
Hive
需要与
Hadoop
交互工作来完成该操作
:
Ø
驱动模块
接收该
命令或查询编译器
Ø
对该
命令或查询进行解析编译
Ø
由
优化器对
该
命令或查询进行优化计算
Ø
该
命令或查询通过执行器进行
执行
![](https://img-blog.csdnimg.cn/direct/0354b99120ea4efcac9f9c526d310a9a.png)
几点说明:
当启动
MapReduce
程序时,
Hive
本身是不会生成
MapReduce
算法程序的
需要通过一个表示“
Job
执行计划”的
XML
文件驱动执行内置的、原生的
Mapper
和
Reducer
模块
Hive
通过和
JobTracker
通信来初始化
MapReduce
任务,不必直接部署在
JobTracker
所在的管理节点上执行
通常在大型集群上,会有专门的网关机来部署
Hive
工具。网关机的作用主要是远程操作和管理节点上的
JobTracker
通信来执行任务
数据文件通常存储在
HDFS
上,
HDFS
由
名称
节点管理