Hive 的Driver 是hive的一个组件,负责将hive sql 解析和优化HQL语句,将其转换成一个Hive Job(可以是MapReduce,也可以是Spark等其他任务)并提交给Hadoop集群。
SQL转化为Hive Job的过程
SQL转化为MapReduce任务的,整个编译过程分为六个阶段:
- Antlr定义SQL的语法规则,完成SQL词法,语法解析,将SQL转化为抽象语法树AST Tree
- 遍历AST Tree,抽象出查询的基本组成单元QueryBlock
- 遍历QueryBlock,翻译为执行操作树OperatorTree
- 逻辑层优化器进行OperatorTree变换,合并不必要的ReduceSinkOperator,减少shuffle数据量
- 遍历OperatorTree,翻译为hive job任务
- 物理层优化器进行hive job任务的变换,生成最终的执行计划
1.http://tech.meituan.com/hive-sql-to-mapreduce.html
2.https://segmentfault.com/a/1190000002774731
3.http://blog.youkuaiyun.com/u010330043/article/details/51225021