hiveSQL~~~AST(抽象语法树)~~~QB(查询块)~~~OperatorTree(操作树)~~~优化过的操作树~~~MapReduce任务树~~~优化后的MapReduce任务树
1.Antlr定义SQL的语法规则,完成SQL词汇,语法解析,将SQL转化为抽象语法树AST Tree;
2.遍历AST Tree,抽象出查询的基本组成单元QueryBlock;
3.遍历QueryBlock,翻译为执行操作树OperatorTree;
4.逻辑层优化器进行OperatorTree变换,合并不必要的ReduceSinkOperator,减少shuffle数据量;
5.遍历OperatorTree,翻译为MapReduce任务;
6.物理层优化器进行MapReduce任务的变换,生成最终的执行计划;