Pig系统分析(7)-Pig有用工具类
2024-10-20 03:28:23
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中比較重要信息有:
- execType:运行类型,local/mr。
- HExecutionEngine:后端运行引擎。
- Script files/各种jar包等。
- definedFunctions:funcName与funcSpec的映射。
- dataStorage:文件系统接口,dfs&lfs。
最新文章
- oracle触发器与数据导入导出的简单使用
- python基础——面向对象编程
- java 网络编程复习(转)
- java微信开发(wechat4j)——支持微信JS-SDK的jsapi_ticket中控服务器
- 落叶枫桥LOGO
- 用js实现简单排序算法
- Senparc.Weixin.MP SDK 微信公众平台开发教程(一):微信公众平台注册
- 利用http实现文件的上传和下载
- ZOJ	1633
- Git 上传本地命令
- Linux 文件操作命令-Linux基础环境命令学习笔记
- Cracking the Coding Interview:: 寻找有环链表的环路起始节点
- linux cp 直接覆盖不提示信息 解决方法
- IIS下载无后缀文件的设置
- 监控(1)-企业常用服务监控shell
- [security] security engine things
- STL查找序列中处于某一大小范围内的元素个数
- Android Apk增量更新
- Spring Boot返回json数据及完美使用FastJson解析Json数据
- lintcode671 循环单词