job conf.xml参数pig.mapPlan

时间:2013-11-16 17:50:21

标签: hadoop mapreduce apache-pig

我们能否以人类可读的格式从作业conf.xml中提取地图计划?使用的编码是什么?

例如,在其中一个conf文件中,我看到如下行(由于字符约束而被截断)。

<property>
  <name>
    pig.mapPlan
  </name>
  <value>
    kmonaaafhdhcaaeogphcghcogbhagbgdgigfcohagjghcogc
  </value>
</property>

[编辑]:这是针对一些后期执行分析,因此使用EXPLAIN获取计划没有多大帮助。

2 个答案:

答案 0 :(得分:1)

pig.mapPlan存储作业的实际计划。它被序列化为Base64字符串。 要获取PhysicalPlan对象,您可以执行以下操作:

import org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan;
import org.apache.pig.impl.util.ObjectSerializer;
...

String pigMapPlan = "kmonaaafhdhcaaeogphcghcogbhagbgdgigfcohagjghcogc...";
PhysicalPlan plan = (PhysicalPlan) ObjectSerializer.deserialize(pigMapPlan);
...
System.out.println(plan); //does an explain on the plan

答案 1 :(得分:-1)

使用EXPLAIN命令。这将为您提供有关给定别名的map-reduce计划的详细信息。