Hive研究
田万鹏
这个作者很懒,什么都没留下…
展开
-
hive代码研究--运行原理(1)- 整体框架
hive就是一个将sql语句转化为MR工具hive的工作原理:1、使用antlr定义sql语法,(详细见hive.g),由antlr工具将hive.g编译为两个java文件:HiveLexer.java HiveParser.java,可以将输入的sql解析为ast树2、org.apache.hadoop.hive.ql.Driver对ast树进行初步的解析(combile),调原创 2011-10-30 17:38:31 · 2939 阅读 · 0 评论 -
hive代码研究--运行原理(2)- genplan过程
genplan是语法分析最重要的一个阶段,在genplan过程中生成一个算子树。1、一条sql语句的结构:一条sql主要包括,insert子句,select子句,from子句,groupby子句,以及其他的条件子句,如limit,orderby等,还有join和union等操作符。其中的from子句,一般可以直接跟一个表,多个表(笛卡尔积等同于join),或者一个子查询,或者由jo原创 2011-10-30 19:14:58 · 1608 阅读 · 0 评论 -
hive代码研究--设计模式(1)- 图(树)遍历
在hive的代码中核心是一个算子树,在算子树优化以及查询计划(MR序列)的生成过程中,多次使用算子树遍历设计模式,这里从总体上对这个设计模式进行介绍。图遍历过程中包含两个模块的工作:分别是遍历器和调度器1、遍历器(GraphWalker):对一颗算子树(或者任务树)进行遍历,遍历是扫描树中的每一个节点的过程,每次经过一个节点的时候,这里包含两个信息,当前节点以及当前状态(这个状态包括这个节原创 2011-11-06 16:32:54 · 1411 阅读 · 0 评论