码迷,mamicode.com
首页 > 其他好文 > 详细

Pig系统分析(6)-从Physical Plan到MR Plan再到Hadoop Job

时间:2014-05-10 08:46:07      阅读:366      评论:0      收藏:0      [点我收藏+]

标签:pig   spark   分布式应用   hadoop   

从Physical Plan到Map-Reduce Plan

注:因为我们重点关注的是Pig On Spark针对RDD的执行计划,所以Pig物理执行计划之后的后端参考意义不大,这些部分主要分析流程,忽略实现细节。

入口类MRCompilerMRCompilier按照拓扑顺序遍历物理执行计划中的节点,将其转换为MROperator,每个MROperator都代表一个map-reduce job,整个完整的计划存储在MROperPlan类中。其中针对LoadStore操作会做以下特殊处理:

  1. Store必须是叶子节点,否则抛出异常
  2. Load新建一MROperator,加入到MROperPlan中。

以下是MROperPlan示意图:

bubuko.com,布布扣

从Map-Reduce Plan到Hadoop Job

JobControlCompiler将Map-Reduce Plan编译成Hadoop Job。

入口方法是:

public JobControl compile(MROperPlan plan, String grpName) throwsJobCreationException

compile方法针对每个MROperator又会调用getJob方法,生成Hadoop Job:

private Job getJob(MROperPlan plan, MapReduceOper mro, Configuration config,PigContext pigContext) throws JobCreationException。
Pig实现的Mapper&Reducer继承结构如下:

  bubuko.com,布布扣 

其中:

  1. XXXWithPartitionIndex用于SkewedJoin。
  2. XXXWithComparator用于需要排序的udf函数。
  3. XXXCounter给数据计数,用于Rank操作

Pig系统分析(6)-从Physical Plan到MR Plan再到Hadoop Job,布布扣,bubuko.com

Pig系统分析(6)-从Physical Plan到MR Plan再到Hadoop Job

标签:pig   spark   分布式应用   hadoop   

原文地址:http://blog.csdn.net/idontwantobe/article/details/24991203

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!