Hive查询在MapReduce上的执行过程
2014-02-27 18:46
423 查看
Hive查询首先被转换成物理查询计划,物理查询计划通常包含多个MapReduce作业,而一个MapReduce作业的输出可以作为另一个MapReduce作业的输入。Hive为Hive查询设计的MapReduce作业有固定的模式:Mapper类为org.apache.hadoop.hive.ql.exec.ExecMapper,Reducer类为org.apache.hadoop.hive.ql.exec.ExecReducer。
Map过程
不同的MapReduce作业可能有不同的InputFormat,具体使用哪个InputFormat在生成物理查询计划时已经确定。在ExecMapper的初始化方法中生成一棵Operator树,树根是一个MapOperator对象。 在ExecMapper的map方法中,来自InputFormat的Key-Value对的Value被分发到Operator树的根结点,即MapOperator对象。MapOperator将接收的Value转换成记录(Row),然后将其沿树向下传递到各个下级Operator处理,记录(Row)在传递过程中可能被过滤、转换或附上Key(记录本身被串行化为Value)后输出给后面的Reduce过程。Reduce过程
从Map过程输出的Key-Value对经过MapReduce框架按Key分组后传递给ExecReducer的reduce方法。在ExecReducer的初始化方法中同样会生成一棵Operator树,传递给reduce方法的各组Key-Value对被按序传递给Operator树处理,传递每组Key-Value对开始和结束时Operator树中的各个Operator会得到通知。相关文章推荐
- access-list(访问控制列表)
- Lucene删除文档,使用IndexReader还是IndexWriter?
- CocoaPods安装和使用教程
- 程序员技术练级攻略[转]
- 因此,吉尔伯特教授建议
- usaco training 4.3.3 Street Race 题解
- 判断某序列是否为另一个序列的出栈序列 C++实现
- C语言面试笔试题
- POJ 1014 / HDU 1059 Dividing (多重背包&剪枝&单调队列)
- 在这里,P代表个性
- 在对不同年龄阶段
- pku 1023
- CListCtrl控件功能扩展总结
- hibernate执行更新操作的时候,没有主键会报错
- 利用递归生成组合数C(n,m)
- 特殊查询
- 这位心理学家认为想用
- 什么是幸福
- DNA排序(sort)
- CListCtrl自绘去除闪屏