Hive 的 HSQL 转换为 MapReduce 的过程?
HiveSQL ->AST(抽象语法树) -> QB(查询块) ->OperatorTree(操作树)-> 优化后的操作树->mapreduce 任务树->优化后的 mapreduce 任务树
过程描述如下:
SQL Parser:Antlr 定义 SQL 的语法规则,完成 SQL 词法,语法解析,将SQL 转化为抽象语法树 AST Tree;
Semantic Analyzer:遍历 AST Tree,抽象出查询的基本组成单元QueryBlock;
Logical plan:遍历 QueryBlock,翻译为执行操作树 OperatorTree; Logical plan optimizer: 逻辑层优化器进行 OperatorTree 变换,合并不必要的ReduceSinkOperator,减少 shuffle 数据量;
Physical plan:遍历 OperatorTree,翻译为 MapReduce 任务;
Logical plan optimizer:物理层优化器进行 MapReduce 任务的变换,生成最终的执行计划。
蓝海大脑 京ICP备18017748号-1