Pig系统分析(7)-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系统分析(7)-Pig实用工具类

时间: 2024-08-09 19:52:53

Pig系统分析(7)-Pig实用工具类的相关文章

java Http消息传递之POST和GET两种方法--通过实用工具类来获取服务器资源

实现该方法需要导入一些jar包 可以去一下地址下载: http://pan.baidu.com/s/1hqrJF7m /** * 实用工具类来获取服务器资源 * * get方法传送数据 * * 1.通过path设定传送方式 * 2.创建客户端 * 3.得到输入流 * 4.读取流准备工作 * 5.读取并写入 * @throws IOException * @throws ClientProtocolException * */ 1 public static String getHttpResul

使用HashMap对象传递url参数实用工具类

代码如下: package com.yanek.util; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; public class HttpUtil { /** * @param args

重复造轮子,编写一个轻量级的异步写日志的实用工具类(LogAsyncWriter)

一说到写日志,大家可能推荐一堆的开源日志框架,如:Log4Net.NLog,这些日志框架确实也不错,比较强大也比较灵活,但也正因为又强大又灵活,导致我们使用他们时需要引用一些DLL,同时还要学习各种用法及配置文件,这对于有些小工具.小程序.小网站来说,有点“杀鸡焉俺用牛刀”的感觉,而且如果对这些日志框架不了解,可能输出来的日志性能或效果未毕是与自己所想的,鉴于这几个原因,我自己重复造轮子,编写了一个轻量级的异步写日志的实用工具类(LogAsyncWriter),这个类还是比较简单的,实现思路也很

Pig系统分析(7)-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

Pig系统分析(8)-Pig可扩展性

本文是Pig系统分析系列中的最后一篇了,主要讨论怎样扩展Pig功能.不仅介绍Pig本身提供的UDFs扩展机制,还从架构上探讨Pig扩展可能性. 补充说明:前些天同事发现twitter推动的Pig On Spark项目:Spork,准备研究下. UDFs 通过UDFs(用户自己定义函数),能够自己定义数据处理方法,扩展Pig功能.实际上,UDFS除了使用之前须要register/define外.和内置函数没什么不同. 主要的EvalFunc 以内置的ABS函数为例: public class AB

Android实用工具类-GrallyAndPhotoUtils图片处理工具

目录 目录 概述 前言 拍照 创建存储拍照图片的文件 调用系统拍照程序 读取相册图片 获取返回URI中的图片路径 统一的回调处理 图片缩略图加载 加载流程 计算缩略图比例 缩略图加载 源码 图片加载结果 示例GIF 概述 此类是用于简便调用系统拍照及打开相册选择图片.通用于多种机型.(亲测魅族MX4,三星note 2,三星note 3) 前言 在执行拍照和打开相册之前,我们需要注意一下. 由于Android开放的系统,很多手机厂商是定制自己的系统的,那么就存在一个问题.尽管大部分时候拍照或者打开

实用工具类--第三方开源--Lazy

下载地址 :https://github.com/ddwhan0123/Lazy 工具 描述 AnimationUtils 动画工具类 AppUtils APP相关信息工具类 AssetDatabaseOpenHelper 目录资源获取 Base64 加密 BitmapUtil 获取Bitmap和对Bitmap的操作 ChannelUtil 获取市场号 Colors 颜色工具类 包括常用的色值 DES DES加密解密类 DataCleanManager 本应用数据清除管理器 DatabaseEx

Guava库学习:Guava中Obejects实用工具类的学习

链接地址:http://www.xx566.com/detail/128.html Java中的Object类是所有Java类的超类(也就是祖先),所有对象都实现Object类中的方法,在日常的工作中,我们经常需要重写其中的几个 方法, 如:equals.toString.hashCode等方法,而在工作中,我们实现这些方法有时候也比较痛苦,如equals方法判断非空. toString调试信息不完整等等,在Guava中,其提供了Objects类帮助我们简化了这些常用方法的实现,接下来,我们一起

AS3的大量实用工具类、开源包,该帖绝对值得你收藏!

ActionScriptUtility Class Tweener Tweening Platform tween24 – 一位日本人写的tween库 Tweener Audio as3soundeditorlib ASAudio – 小巧的声音处理库 SoundAS – 实用的声音管理库 Graphic as3-bitmap-mosaic-class graffiti Volumetrics – 一款实时光照效果库 Component Minimalcomps – 小巧的纯AS组件库 Skin