搜索
您的当前位置:首页正文

Hive的HSQL转换为MapReduce的过程

来源:独旅网

HiveSQL ->AST(抽象语法树) -> QB(查询块) -> OperatorTree(操作树) ->优化后的操作树 ->mapreducer任务树 -> 优化后的mapreducer任务树

Parser:将HQL转化成抽象语法树

SemanticAnalyzer:将抽象语法书换成查询块

LogicPlanGenerator:将查询块转化成查询计划

LogicalOptimizer:重写逻辑查询计划

PhysicalPlanGenerator:将逻辑计划转换成物流计划(M/R jobs)

PhysicalOptimizer: 选择最佳的侧略

过程描述如下:

SQL Parser: Antlr定义SQL语法规则,完成SQL词法,语法解析,将SQL转化为抽象语法树AST Tree;

Semantic Analyzer:遍历AST Tree,抽象出查询的基本组成单元QueryBlock;

Logical plan:遍历QueryBlock,翻译为执行操作树OperatorTree;

Logical plan optimizer:逻辑层优化器进行Operator Tree变换,合并不必要的ReduceSinkOperator,减少shuffle数据量;

Physical plan:遍历Operator Tree,翻译为MapReduce任务;

Logical plan optimizer:物理层优化器进行MapReduce任务的变换,生成最终的执行计划;

因篇幅问题不能全部显示,请点此查看更多更全内容

Top