Pig简介

Pig简介

一、Pig是什么

Pig是Apache项目的一个子项目,Pig提供了一个支持大规模数据分析的平台。Pig包括用来描述数据分析程序高级程序语言,以及对这些程序进行评估基础结构。Pig突出的特点就是它的结构经得起大量并行任务的检验,这使得它能够处理大规模数据集。


目前Pig的基础结构层包括一个产生MapReduce程序的编译器。Pig的语言层包括一个叫做PigLatin文本语言,它具有以下几个特征:

易于编程:实现简单的和高度并行的数据分析任务非常容易。由相互关联的数据转换实例所组成的复杂任务被明确地编码为数据流,这是他们的编写更加容易,同时也更容易理解和维护。

自动优化:任务编码的方式允许系统自动去优化执行过程,从而使用户能够专注于语义,而非效率。

可扩展性:用户可以轻松编写自己的函数来进行特殊用途的处理。


二、Pig运行模式

Pig有两种运行模式:Local模式MapReduce模式。当Pig在Local模式运行时,只能访问本地一台主机,当Pig在MapReduce模式运行时,它将访问一个Hadoop集群和HDFS的安装位置。这是Pig将自动地对这个集群进行分配和回收。因为Pig可以自动的对MapReduce程序进行优化,所以当用户使用Pig  Latin语言进行编程时候,可以不必关心程序的运行效率,Pig系统将会自动地对程序进行优化,这样能够节省大量用户的编程时间。

Local模式:适用于用户对程序进行调试,因为Local模式下Pig只能访问本地一台主机,他可以在短时间内处理少量的数据,这样用户不必关心Hadoop系统对整个集群的控制,这样既能让用户使用Pig的功能,又不至于在集群的管理上花费太多的时间。

MapReduce模式:Pig需要把真正的查询转换成相应的MapReduce作业,并提交到Hadoop集群去运行(集群可以使真实的分布,也可以是伪分布)。

Pig的Local和MapReduce模式都有3种运行方式,分别是:Grunt Shell方式、脚本文件方式和嵌入式程序方式。


三、PigLatin语言

Pig Latin语言与传统的关系数据库中的数据库操作语言非常类似。但是Pig Latin语言更侧重于对数据的查询分析,而不是对数据进行修改和删除等的操作。另外,由于PigLatin可以在Hadoop的分布式的云平台上运行,它的这个特点可以让其具有其它数据库无法比拟的速度优势,能够在短时间内处理海量的数据。例如,处理系统日志文件、处理大型数据库文件、处理特定Web数据等。

除此之外,我们在使用Pig Latin语言编写程序的时候,不必关心如何让程序能够更好的在Hadoop平台上运行,因为这些任务都是由Pig系统自行分配的,不需要程序员参与。因此,程序员只需要专注于程序的编写,这样大大减轻了程序员的负担。

Pig Latin是这样的一个操作:通过对关系进行处理产生另外一组关系。Pig Latin语言在书写一条语句的时候能够跨越多行,但是必须以半角的分号来结束。

Pig Latin语言通常按照下面的流程来编写:

(1)、通过一条LOAD语句从文件系统中读取数据;

(2)、通过一系列转换语句对数据进行处理;

(3)、通过一条STORE语句把处理结果输出到文件系统中,或者使用一条DUMP语句把处理结果输出在屏幕上。

LOAD和STORE语句有严格的语法规定,用户很容易就能掌握,关键是如何灵活的使用转换语句对数据进行处理。


四、PigLatin的数据模式

Pig Latin中的数据组织形式包括:关系(relation)、(bag)、元组(tuple)和(field)。

一个关系可以按照如下方式定义:

一个关系就是一个包(更具体的说,是一个外部包)

包是元组的集合

元组是域的有序集合

域是一个数据块

一个Pig关系是一个由元组组成的,Pig中的关系和关系型数据库中的表(table)很相似,包中的元组相当于行,但是和关系表不同的是,Pig中不需要每一个元组包含相同数目或相同位置的域,也不需要具有相同的数据类型。

关系是无序的,这就意味着Pig不能保证元组是按特定的顺序来执行的。


五、Pig和数据库的区别

1)、Pig Latin是面向数据流的编程方式,而SQL是一种描述型编程语言。我们以前学习SQL的时候经常听到过这样一句话:用SQL,你只需要告诉它你需要什么,具体怎么做交给SQL就行了。而Pig Latin是需要你一步一步根据数据流的处理方式来编程的,也就是说你要设计数据流的每一个步骤,有点类似SQL的查询规划器

2)、传统的关系数据库(RDBMS)需要你预先定义表结构(模式),所有的数据处理都是基于这些有着严格格式的表数据。而Pig则不需要这样,你可以在运行时动态定义模式。本质上来说,Pig可以处理任何格式的元组。一般情况下,Pig的数据来源是文件系统,比如HDFS,而RDBMS的数据是存储在数据库中 的。(备注:关于元组的概念,基本和Python中的touple是差不多的)

3)、Pig支持比较复杂的,比如嵌套结构的数据处理。这种特殊的处理能力加上UDF(用户自定义函数)使得Pig具有更好的可定制型

4)、 一些RDBMS特有的特性是Pig所没有的,比如事务处理和索引。Pig和MapReduce一样,是基于批量的流式写操作。


六、Pig和Hive

Hive和Pig是hadoop之上的两个数据查询和处理的工具。Hive的语法与SQL很像。Pig是一种处理数据的脚本语言。如果不用Hive和 Pig之类的工具,而是用Hodoop上的原生态的Java的来查数据的话,开发效率比较低。一个简单的sql需要写一页代码。

Pig是一种编程语言,它简化了Hadoop常见的工作任务。Pig可加载数据、表达转换数据以及存储最终结果。Pig内置的操作使得半结构化数据变得有意义(如日志文件)。同时Pig可扩展使用Java中添加的自定义数据类型并支持数据转换。

HIVE介于Pig和传统的RDBMS之间,和Pig一样,Hive也被设计为HDFS作为存储,但是他们之间有着显著的区别。Hive的查询语言HiveQL,是基于SQL的。任何熟悉SQL的人都可以轻松使用HiveQL写查询。和RDBMS相同。Hive要求所有数据必须存储在表中,表必须有模式,而模式由Hive进行管理。但是Hive允许为预先存在于HDFS的数据关联一个模式。所以,数据的加载步骤是可选的。

和Pig一样,Hive也不支持低时延查询。

 

七、下载

1、官网下载地址:

http://mirrors.hust.edu.cn/apache/pig/

2、所有版本下载地址

http://archive.apache.org/dist/pig/

 

 

 

 

参考文档:

      Hadoop实战 第二版 陆嘉恒

     http://blog.csdn.net/zythy/article/details/18222917

     http://www.cnblogs.com/zuoqs/archive/2012/05/06/2486714.html

     http://blog.csdn.net/rzhzhz/article/details/7557607

  • 6
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
完整全套资源下载地址:https://download.csdn.net/download/qq_27595745/65977804 【完整课程列表】 大数据与云计算教程课件 优质大数据课程 01.Hadoop简介与安装入门(共29页).pptx 大数据与云计算教程课件 优质大数据课程 02.MapReduce(共23页).pptx 大数据与云计算教程课件 优质大数据课程 03.Hadoop YARN(共25页).pptx 大数据与云计算教程课件 优质大数据课程 04.MapReduce Eclipse开发插件(共20页).pptx 大数据与云计算教程课件 优质大数据课程 05.Hadoop入门数据分析实战(共57页).pptx 大数据与云计算教程课件 优质大数据课程 06.HDFS(共38页).pptx 大数据与云计算教程课件 优质大数据课程 07.HDFS Shell命令(共21页).pptx 大数据与云计算教程课件 优质大数据课程 08.HDFS文件接口(共41页).pptx 大数据与云计算教程课件 优质大数据课程 09.MapReduce序列化(共29页).pptx 大数据与云计算教程课件 优质大数据课程 10.MapReduce MP过程进阶(共42页).pptx 大数据与云计算教程课件 优质大数据课程 11.MapReduce IO操作(共61页).pptx 大数据与云计算教程课件 优质大数据课程 12.序列化框架(共28页).pptx 大数据与云计算教程课件 优质大数据课程 13.深入MapReduce应用开发(共21页).pptx 大数据与云计算教程课件 优质大数据课程 14.Hadoop集群配置(共6页).pptx 大数据与云计算教程课件 优质大数据课程 15.Hive(共46页).pptx 大数据与云计算教程课件 优质大数据课程 16.Hive操作(共43页).pptx 大数据与云计算教程课件 优质大数据课程 17.Hive查询(共32页).pptx 大数据与云计算教程课件 优质大数据课程 18.HBase(共43页).pptx 大数据与云计算教程课件 优质大数据课程 19.Pig(共33页).pptx 大数据与云计算教程课件 优质大数据课程 20.Pig Latin(共36页).pptx 大数据与云计算教程课件 优质大数据课程 21.Pig模式与函数(共64页).pptx 大数据与云计算教程课件 优质大数据课程 22.Zookeeper(共28页).pptx 大数据与云计算教程课件 优质大数据课程 23.Zookeeper服务(共47页).pptx 大数据与云计算教程课件 优质大数据课程 24.使用Zookeeper构建应用(共34页).pptx 大数据与云计算教程课件 优质大数据课程 25.Sqoop(共19页).pptx 大数据与云计算教程课件 优质大数据课程 26.深入Sqoop的导入(共29页).pptx 大数据与云计算教程课件 优质大数据课程 27.深入Sqoop导出(共19页).pptx 大数据与云计算教程课件 优质大数据课程 28.Flume(共33页).pptx 大数据与云计算教程课件 优质大数据课程 29.Kafka(共30页).pptx 大数据与云计算教程课件 优质大数据课程 30.Kafka开发(共34页).pptx 大数据与云计算教程课件 优质大数据课程 31.Strom(共14页).pptx 大数据与云计算教程课件 优质大数据课程 32.Spark入门之Scala(共173页).pptx 大数据与云计算教程课件 优质大数据课程 33.Spark入门(共40页).pptx 大数据与云计算教程课件 优质大数据课程 34.SparkSQL(共15页).pptx 大数据与云计算教程课件 优质大数据课程 35.Oozie(共41页).pptx 大数据与云计算教程课件 优质大数据课程 36.Impala(共20页).pptx 大数据与云计算教程课件 优质大数据课程 37.Solr(共38页).pptx 大数据与云计算教程课件 优质大数据课程 38.Lily(共23页).pptx 大数据与云计算教程课件 优质大数据课程 39.Titan(共20页).pptx 大数据与云计算教程课件 优质大数据课程 40.Neo4j(共50页).pptx 大数据与云计算教程课件 优质大数据课程 41.Elasticsearch(共17页).pptx

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值