Pig系统分析-Pig有用工具类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pig系统分析-Pig有用工具类相关的知识,希望对你有一定的参考价值。

Explain

Explain是Pig提供的调试工具,使用explain能够输出Pig Lation的运行计划。

值得一提的是,explain支持-dot选项,将运行计划以DOT格式输出, (DOT是一种图形描写叙述语言,请參考http://zh.wikipedia.org/zh/DOT%E8%AF%AD%E8%A8%80)

代码实现详见org.apache.pig.impl.plan.DotPlanDumper,这部分实现为我们设计运行计划可视化提供了參考。

下图部分截取了使用Graphviz打开物理运行计划DOT文件之后生成的图。(Graphviz介绍请參考http://zh.wikipedia.org/wiki/Graphviz

技术分享

Illustrate

Illustrate比Explain更进一步。它还会依据详细语句表达式条件自己主动生成适合运行计划的样本数据。并模拟运行。将每一步的结果依照表格输出,模拟一次完整的数据处理流程。代码实现详见org.apache.pig.pen.Illustrator。

PigContext

PigContext类包括Pig运行过程各个阶段须要的上下文基本信息,PigContext从前端传递到后端,一直到Hadoop Job阶段都可用。

在Map&Reduce的初始化方法中,从Hadoop Configuration中获取PigContext。

pigContext= (PigContext)ObjectSerializer.deserialize(job.get("pig.pigContext"));
PigContext中比較重要信息有:

  1. execType:运行类型,local/mr。

  2. HExecutionEngine:后端运行引擎。

  3. Script files/各种jar包等。
  4. definedFunctions:funcName与funcSpec的映射。

  5. dataStorage:文件系统接口,dfs&lfs。


以上是关于Pig系统分析-Pig有用工具类的主要内容,如果未能解决你的问题,请参考以下文章

Pig系统分析-Pig可扩展性

何时不使用 Pig Latin

除了 apache.org 教程之外,还有关于 Pig UDF 的有用教程吗?

干货|大数据技术之争:PIG对Hive

Pig 无法解析 CassandraStorage 的类版本

Pig AvroStorage + 记录中不支持的类型:类 org.apache.pig.data.DataByteArray