Hive代码部门及架构简单介绍
Hive代码组织及架构简单介绍parse,语义分析, 通过antlr解析生成抽象语法树 Driver.compile()sa,类型检查与
Hive代码组织及架构简单介绍
- parse,语义分析, 通过antlr解析生成抽象语法树 Driver.compile()
- sa,类型检查与语义分析 SemanticAnalyzer.doPhase1Ctx() ?。。。列名是否存在
- lpg,logic plan generator,查询块到逻辑操作数,SemanticAnalyzer.genPlan()。。。什么cube、rollup操作树都在这一步完工
- lpo,logic plan optimizer,逻辑计划优化,SemanticAnalyzer.optimizer()。。。列剪辑、谓语下推、分区剪辑等等
- ppg,physical plan generator,生成物理执行计划,SemanticAnalyzer.genMapRedTasks()
- ppo,physical plan?optimizer,物理执行优化,PhysicalOptimizer.optimize()
hive多表join count(distinct)异常,是因为步骤3 lpg生成的逻辑执行计划有bug
附带hive执行流程图
Driver类是hive最重要的类,了解其run、compile、execute方法,就清楚hive的核心。?
参考文献
hive源码解析:http://blog.csdn.net/lpxuan151009/article/details/7956518
hive编译解析:http://blog.csdn.net/lalaguozhe/article/details/9339679
hive开发者指南:https://cwiki.apache.org/confluence/display/Hive/DeveloperGuide
hive svn地址:http://svn.apache.org/repos/asf/hive/