Pig 是一种探索大规模数据集的脚本语言。MapReducer的一个主要的缺点就是开发的周期太长了。我们要编写mapper和reducer,然后对代码进行编译打出jar包,提交到本地的JVM或者是hadoop的集群上,最后获取结果,这个周期是非常耗时的,即使使用Streaming(它是hadoop的一个工具,用来创建和运行一类特殊的map/reduce作业。所谓的特殊的map/reduce作业可以是可执行文件或脚本本件(python、PHP、c等)。Streaming使用“标准输入”和“标准输出”与我们编写的Map和Reduce进行数据的交换。由此可知,任何能够使用“标准输入”和“标准输出”的编程语言都可以用来编写MapReduce程序)能在这个过程中除去代码的编译和打包的步骤,但是这一个过程还是很耗时,Pig的强大之处就是他只要几行Pig Latin代码就能处理TB级别的数据。Pig提供了多个命令用于检查和处理程序中的数据结构,因此它能很好的支持我们写查询。Pig的一个很有用的特性就是它支持在输入数据中有代表性的一个小的数据集上试运行。所以。我们在处理大的数据集前可以用那一个小的数据集检查我们的程序是不是有错误的。
Pig为大型的数据集的处理提供了更高层次的抽象。MapReducer能够让我们自己定义连续执行的map和reduce函数,但是数据处理往往需要很多的MapReducer过程才能实现,所以将数据处理要求改写成MapReducer模式是很复杂的。和MapReducer相比,Pig提供了更加丰富的数据结构,一般都是多值和嵌套的数据结构。Pig还提供了一套更强大的数据交换操作,包括了MapReducer中被忽视的"join"操作
Pig 被设计为可以扩展的,处理路径上的每一个部分,载入,存储,过滤,分组,连接,都是可以定制的,这些操作都可以使用用户定义函数(user-defined function,UDF)进行修改,这些函数作用于Pig的嵌套数据模型。因此,它们可以在底层与Pig的操作集成,UDF的另外的一个好处是它们比MapReducer程序开发的库更易于重用。
但是。Pig并不适合处理所有的“数据处理”任务。和MapReducer一样,它是为数据批处理而设计的,如果想执行的查询只涉及一个大型数据集的一小部分数据,Pig的实现不是很好,因为它要扫描整个数据集或其中的很大一部分。
Pig包括两部分
1:用于描述数据流的语言,称为Pig Latin(拉丁猪,个人翻译)
2:用于运行PigLatin程序的执行环境。一个是本地的单JVM执行环境,一个就是在hadoop集群上的分布式执行环境。
Pig Latin程序是由一系列的"操作"(operation)或"变换"(transformation)组成。每个操作或变换对输入进行数据处理,然后产生输出的结果。这些操作整体上描述了一个数据流,Pig执行的环境把数据流翻译为可执行的内部表示,并运行它。在Pig的内部,这些变换和操作被转换成一系列的MapReducer,但是我们一般情况下并不知道这些转换是怎么进行的,我们的主要的精力就花在数据上,而不是执行的细节上面。
在有些情况下,Pig的表现不如MapReducer程序。总结为一句就是要么话花大量的时间来优化Java MapReducer程序,要么使用Pig Latin来编写查询确实能节约时间。
相关推荐
它简化了使用Hadoop进行数据分析的要求,提供了一个高层次的、面向领域的抽象语言:PigLatin。通过PigLatin,数据工程师可以将复杂且相互关联的数据分析任务编码为Pig操作上的数据流脚本,通过将该脚本转换为...
hadoop 第三版-权威指南-从入门到精通-中文pdf版本。介绍hadoop分布式文件系统,MapReduce的工作原理,并手把手教你如何构建hadoop集群,同时附带介绍了pig,hive,hbase,zookeeper,sqoop等hadoop家族的开源软件。
Hadoop技术-Pig简介.pptx
本书内容全面,对Hadoop整个技术体系进行了全面的讲解,不仅包括HDFS、MapReduce、YARN等核心内容,而且还包括Hive、HBase、Mahout、Pig、ZooKeeper、Avro、Chukwa等与Hadoop技术相关的重要内容。实战性强,不仅为...
hadoop组件之一-mapreduce脚本编程--pig编程指南 hadoop组件之一-mapreduce脚本编程--hive编程指南
经典大作 hadoop the definitve guide programming hive programming pig
Hadoop技术Pig简介共11页.pdf.zip
Hadoop 和猪使用 hadoop 2.5.2 运行 Pig 0.14.0 的 Docker 容器该容器基于拉取镜像 docker pull ipedrazas/hadoop-pig启动一个容器要使用 Docker 映像,请使用: docker run -i -t ipedrazas/hadoop-pig /etc/...
ch11 - Pig ch12 - Hive ch13 - HBase ch14 - ZooKeeper ch15 - Sqoop ch16 - Case Studies app1 - Installing Apache Hadoop app2 - Cloudera's Distribution for Hadoop app3 - Preparing the NCDC Weather Data
Hadoop系统的pig工具包,很好用的
Apache Ambari是一种基于Web的工具,支持Apache Hadoop集群的供应、管理和监控。Ambari已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop和Hcatalog等。但是这里的 Hadoop 是广义...
mortar-recsys, 一种基于砂浆数据的Hadoop和 Pig 定制推荐 Mortar推荐引擎一个定制推荐引擎的Hadoop和 Pig,通过迫击炮数据。入门/教程这个项目包含了几个完整的。可以运行的示例数据示例数据,以及一个模板项目。...
Hadoop配置(也称为垫片和Pentaho大数据自适应层)是与特定版本的Hadoop(以及相关工具:Hive,HBase,Sqoop,Pig等)进行通信所需的Hadoop库的集合。 它们被设计为易于配置。 如何建造 pentaho-hadoop-shims使用...
Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项目包括,YARN, Hcatalog, Oozie, Cassandra, Hama, Whirr, ...
目标是学习 Apache(大)数据库框架 - Hadoop、Pig、Hive、Hbase 描述 目前在 2 个数据集上有 3 个项目: 百万歌曲数据集 Most_Popular_Genres :使用非常简单的流派识别(Apache Hive 与 Apache Pig)确定“21 ...
完整版大数据云计算课程 Hadoop数据分析平台系列课程 Hadoop 08 Pig安装与Pig Latin语言,应用案例 共26页.rar
本文的安装只涉及了hadoop-common、hadoop-hdfs、hadoop-mapreduce和hadoop-yarn,并不包含HBase、Hive和Pig等。 NameNode存储了一个文件有哪些块,但是它并不存储这些块在哪些DataNode上,DataNode会上报有哪些块...
Hadoop_HBase_Pig
Apache Crunch 是基于 FlumeJava 实现的,它是一个基于 MapReduce 的数据管道库。Apache Crunch是一个 Java ...它们的区别是:Pig 是一个基于管道的框架,而 Crunch 则是一个 Java 库,它提供比 Pig 更高级别的灵活性。
能独立熟练完成Hadoop的...能独立完成pig的安装并且利用pig做简单的数据分析工作 能独立完成Hbase的安装和配置 了解Hbase的原理并能进行简单的shell操作 能独立完成Hive的安装和配置 了解Hive的原理及进行HiveQL操作