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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaWRvbnR3YW50b2Jl/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

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。

最新文章

  1. oracle触发器与数据导入导出的简单使用
  2. python基础——面向对象编程
  3. java 网络编程复习(转)
  4. java微信开发(wechat4j)——支持微信JS-SDK的jsapi_ticket中控服务器
  5. 落叶枫桥LOGO
  6. 用js实现简单排序算法
  7. Senparc.Weixin.MP SDK 微信公众平台开发教程(一):微信公众平台注册
  8. 利用http实现文件的上传和下载
  9. ZOJ 1633
  10. Git 上传本地命令
  11. Linux 文件操作命令-Linux基础环境命令学习笔记
  12. Cracking the Coding Interview:: 寻找有环链表的环路起始节点
  13. linux cp 直接覆盖不提示信息 解决方法
  14. IIS下载无后缀文件的设置
  15. 监控(1)-企业常用服务监控shell
  16. [security] security engine things
  17. STL查找序列中处于某一大小范围内的元素个数
  18. Android Apk增量更新
  19. Spring Boot返回json数据及完美使用FastJson解析Json数据
  20. lintcode671 循环单词

热门文章

  1. ubuntu 安装TensorFlow
  2. maven的知识图谱
  3. 多模态检索之CCA算法
  4. [POI2014]Supercomputer
  5. 如何将netbeans生成的项目文件打包发布到其他的Tomcat服务器上?
  6. DEV MarqueeProgressBarControl控件
  7. numpy中结构数组
  8. 由jtable浅谈vector<vector<Object>>的用法(转自a718515028的专栏)
  9. Oracle数据库实现获取前几条数据的方法
  10. mapbox 接入高德矢量地图实战