Pig系统分析(8)-Pig可扩展性】的更多相关文章

本文是Pig系统分析系列中的最后一篇了,主要讨论怎样扩展Pig功能.不仅介绍Pig本身提供的UDFs扩展机制,还从架构上探讨Pig扩展可能性. 补充说明:前些天同事发现twitter推动的Pig On Spark项目:Spork,准备研究下. UDFs 通过UDFs(用户自己定义函数),能够自己定义数据处理方法,扩展Pig功能.实际上,UDFS除了使用之前须要register/define外.和内置函数没什么不同. 主要的EvalFunc 以内置的ABS函数为例: public class AB…
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打…
Physical Plan生成过程 优化后的逻辑运行计划被LogToPhyTranslationVisitor处理,生成物理运行计划. 这是一个经典的Vistor设计模式应用场景. 当中,LogToPhyTranslationVisitor的visit()为入口方法,通过DependencyOrderWalker遍历处理逻辑运行计划中的每个LogicalRelationalOperator.DependencyOrderWalker依照依赖顺序遍历DAG中节点,保证当且仅当节点的全部前驱都被訪问…
从Physical Plan到Map-Reduce Plan 注:由于我们重点关注的是Pig On Spark针对RDD的运行计划,所以Pig物理运行计划之后的后端參考意义不大,这些部分主要分析流程,忽略实现细节. 入口类MRCompiler,MRCompilier依照拓扑顺序遍历物理运行计划中的节点,将其转换为MROperator,每一个MROperator都代表一个map-reduce job,整个完整的计划存储在MROperPlan类中.当中针对Load和Store操作会做下面特殊处理:…
前两天使用pig做ETL,粗浅的看了一下,没有系统地学习,感觉pig还是值得学习的,故又重新看programming pig. 以下是看的第一章的笔记: What is pig? Pig provides an engine for executing data flows in parallel on Hadoop. It includes a language, Pig Latin, for expressing these data flows. Pig Latin includes op…
Apache Pig是MapReduce的一个抽象.它是一个工具/平台,用于分析较大的数据集,并将它们表示为数据流.Pig通常与 Hadoop 一起使用:我们可以使用Apache Pig在Hadoop中执行所有的数据处理操作. 要使用 Apache Pig 分析数据,程序员需要使用Pig Latin语言编写脚本.所有这些脚本都在内部转换为Map和Reduce任务.Apache Pig有一个名为 Pig Engine 的组件,它接受Pig Latin脚本作为输入,并将这些脚本转换为MapReduc…
Pig是一个大规模数据分析平台.Pig的基础结构层包括一个产生MapReduce程序的编译器.在编译器中,大规模并行执行依据存在.Pig的语言包括一个叫Pig Latin的文本语言,此语言有如下特性:1.易于编程.实现简单的和高度并行的数据分析任务非常容易.2.自动优化.任务编码的方式允许系统自动去优化执行过程,从而使用户能够专注于逻辑,而非效率3.可扩展性,用户可以轻松编写自己的函数用于特殊用途的处理. 1 安装 1.安装java,配置环境变量2.安装pig,配置环境变量ps:安装一款平台级软…
Hive集成HBase 配置 将hive的lib/中的HBase.jar包用实际安装的Hbase的jar包替换掉 cd /opt/hive/lib/ ls hbase-0.94.2*  rm -rf hbase-0.92* cp /opt/hbase/hbase-0.94.2*  将Hive的lib/中的zookeeper.jar包用HBase中lib/中的替换掉 步骤同上   在hive-site.xml中添加: <property>         <name>hive.aux…
相比Java的MapReduce api,Pig为大型数据集的处理提供了更高层次的抽象,与MapReduce相比,Pig提供了更丰富的数据结构,一般都是多值和嵌套的数据结构.Pig还提供了一套更强大的数据变换操作,包括在MapReduce中被忽视的连接Join操作. Hadoop版本:2.2.0  Pig版本:0.12.1 Pig介绍 Pig包括两部分: 用于描述数据流的语言,称为Pig Latin. 用于执行Pig Latin程序的执行环境,当前有两个环境:单JVM中的本地执行环境和Hadoo…
最近特别喜欢用Pig,拥有能满足大部分需求的内置函数(built-in functions),支持自定义函数(user defined functions, UDF),能load 纯文本.avro等格式数据:illustrate看pig执行步骤的结果,describe看alias的schema:以轻量级脚本形式跑MapReduce任务,各种爽爆. 1. Word Count 较于中文,英文比较工整,可以根据空格.标点符号进行分词. A = load '/user/.*/req-temp/text…