1,Pig的安装
(一)软件要求
(二)下载Pig
(三)编译Pig
2,运行Pig
(一)Pig的所有执行模式
(二)pig的交互式模式
(三)使用pig脚本执行模式
3,Pig Latin语句的声明
(一)加载数据
(二)使用和处理数据
(三)存储中间数据
(四)存储最终数据
(五)调试Pig Latin语言
4,Pig的属性值管理
5,Pig一些注意事项
1,Pig的安装
(一)软件安装
必须配置:
(1)hadoop
下载地址:
http://hadoop.apache.org/common/releases.html
可以同时运行不同版本的Pig只要设置相对应的HADOOP_HOME即可,如果你没有设置HADOOP_HOME,pig默认将会运行嵌入式的版本hadoop(1.0.0)
(2)Java1.6+
下载地址:
http://java.sun.com/javase/downloads/index.jsp
需要安装JDK,并设置JAVA_HOME
可选配置:
python2.5 (如果使用python写UDF时,需要安装)
JavaScript1.7 (如果使用JavaScript写UDF时,需要安装)
JRuby1.6.7 (如果使用JRuby写UDF时,需要安装)
Groovy1.8.6 (如果使用Groovy写UDF时,需要安装 )
Ant1.7 (如果需要编译构建,则需要下载安装,搞JAV的,建议安装)
Junit4.5 (如果需要单元测试,则需要安装)
(二)下载Pig
注意以下几点:
1,下载最近的而且是稳定版本的Apache Pig
2,然后解压下载Pig,注意下面二点:
pig的主脚本文件,pig位于bin目录(/pig.n.n.n/bin/pig),这里面包括了pig的环境变量的定义
pig的属性文件,pig.properties位于conf目录(/pig.n.n.n/conf/pig.properties)你也可以通过PIG_CONF_DIR环境变量来指定改文件的绝对路径。
3,配置pig的环境变量,如下面的代码:
$ export PATH=/<my-path-to-pig>/pig-n.n.n/bin:$PATH
4,测试pig安装时否成功,使用pig -help命令
(三):编译Pig
1,从svn导入pig的源代码
svn co http://svn.apache.org/repos/asf/pig/trunk
2,进入pig的根目录下,执行ant命令,编译pig
3,校验pig.jar,运行一个单元测试ant test
2,运行Pig
在pig里面,可以使用多种不同的模式运行它:
序号 模式名 是否支持本地模式 Hadoop集群模式
1 交互式模式 支持 支持
2 批处理模式 支持 支持
(一)执行模式:
pig有两种运行模式或者运行类型:
本地模式:运行本地模式非常简单,你只需要一台机器即可,所有的文件和脚本都在本地磁盘上,指定模式使用命令 pig -x flag (例如: pig -x local),本地模式下不支持MapReduce的(线程)并行,因为在当前的hadoop版本中,hadoop的LocalJobRunner 运行器不是一个线程安全的类。
hadoop集群模式:hadoop集群模式也称Map Reduce模式,前提是你的机器上已经安装好了hadoop的集群,并能正常运行,集群模式是pig默认的模式,在没有任何声明或指定的情况下,总是会以集群的模式运行pig作业,当然你可以使用命令pig 或者 pig -x mapreduce来指定运行模式
例子:
以pig命令方式启动:
(1):pig -x local (local模式)
(2)pig -x mapreduce (集群模式)
以java命令启动模式:
(1),java -cp pig.jar org.opache.pig.Main -x local (local模式)
(2),java -cp pig.jar org.opache.pig.Main -x mapreduce (集群模式)
(二)交互式模式:
我们可以使用pig在一个交互式的模式下通过使用grunt shell,调用grunt shell,只需要执行pig命令即可,然后我们就会在命令行,操作pig,例子如下:
grunt> A = load 'passwd' using PigStorage(':');
grunt> B = foreach A generate $0 as id;
grunt> dump B;
(三)脚本模式
我们可以把pig的一系列处理,封装成一个pig脚本文件,后缀名以.pig结尾,相信在linux下写过shell脚本的朋友都很好理解,我们把我们的linux命令封装在.sh的脚本里,这样执行起来非常方便,而且容易管理。
假如我们现在有一个test.pig的脚本,那么我们怎么执行呢?
(1)以local模式运行: pig -x local id.pig
(2)以集群模式运行: pig -x mapreduce.pig
使用Pig脚本文件的好处:
我们可以将pig语法声明和pig命令封装在当个pig的脚本文件里,而且以后缀名.pig结尾,非常有利于我们区分这些脚本
我们可以在命令行和grunt shell里面,使用run或exec命令,来运行pig,这里散仙就不举例子了,后面会写文章。
pig脚本也支持外部传参数,这和shell脚本的传参类似,非常灵活,后面文章会写。
pig的注释:
(1)多行注释:/*pig脚本语句*/
(2)当行注释:- - pig脚本语句 两个
注意:
Pig支持直接运行在HDFS上,Amazon S3,或者其他的一些分布式系统上的脚本或一个jar包,如果是在分布式的系统上,我们在运行时,需要指定网络的url路径,例如:
$ pig hdfs://nn.mydomain.com:9020/myscripts/script.pig
3,Pig Latin的语句声明:
在pig中,pig latin是使用pig来处理数据的基本语法,这类似于我们在数据库系统中使用SQL语句一样。
我们使用pig latin语句,获取一个输入,然后经过一系列处理之后,会得到一个输出,所以在所有的pig脚本中,只有load(读数据)和store(写数据)两个语句是必不可少的。
除此之外,Pig的语法块可能还会包括,一些表达式和schema,Pig latin可以跨多行命令组成一个span,必须在小括号的模式中,而且以必须以分号结束。 ( ; )
Pig latin语句,通常组织如下:
(一)一个load声明从文件系统上加载数据
(二)一系列的的转化语句去处理数据
(三)一个dump语句,来展示结果或者stroe语句来存储结果
只有Dump和Store语句能产生输出
(一)加载数据:
使用load操作和(load/store)函数读数据进入Pig(默认的存储模式是PigStorage)
(二)使用和处理数据
Pig允许你使用多种方式处理数据,如果我们是刚入门的朋友,熟悉下面的这些操作符,将会有助于我们使用和理解Pig。
使用filter语句来过滤tuple或一行数据(类似于SQL中的where)
使用foreach语句来操作列的数据(类似于 select field1,filed 2 , .... from table里面限制列返回。)
使用group语句来分组. (类似SQL里面的group by)
使用cogroup, inner join,outer join来分组或关联两个以上的表关联(与SQL里的join类似)
使用union语句来合并两个以上关系的结果数据,使用split语句可以把一个表拆分为多个分散的小表(注意,散仙在这里说表,只是为了方便理解,在pig没有表这一个概念,虽然有类似的结构)
(三)存储中间结果集
pig生成的中间结果集,会存储在HDFS一个临时的位置,这个位置必须已经在HDFS中存在,这个位置可以被配置使用pig.temp.dir这个属性,默认是存储在/tmp目录,在0.7以前的版本,这个值是固定的,0.7以后,我们可以灵活的更改路径,通过配置
(四)存储最终结果集
使用store操作和load/store函数,可以将结果集写入文件系统中,默认的存储格式是PigStorage,在我们测试阶段,我们可以使用dump命令,直接将结果显示在我们的屏幕上,方便我们调试,在一个生产环境中,我们一般使用store语句,来永久存储我们的结果集。
(五)调试Pig Latin
pig提供了一写操作符,来帮助我们调试我们的结果:
使用dump语句,显示结果在我们的终端屏幕上
使用describe语句,来显示我们的schema的关系(类似查看表的结构)
使用explain语句,来显示我们的执行逻辑或物理视图,可以帮助我们查看map,reduce的执行计划
使用illustrate语句,可以一步步的查看我们的语句执行步骤
此外,pig还定义了一些非常方面的别名集,来快速帮助我们调试脚本:
dump的别名 \d
describe的别名 \de
explain的别名 \e
illustrate的别名 \i
退出\q
4,Pig的属性值
Pig支持java中的properties文件,我们可以通过使用这个文件来定制pig的行为,我们可以使用help命令,来查看所有的pig的属性值
如何指定一个pig的值?
通过pig.properties文件,注意需要把这个文件包含在java的classpath中
-D 命令在命令行指定一个pig属性 例如:pig -Dpig.tmpfilecompression=true
-P命令可以指定自己的一个properties文件。 例如:pig -P mypig.properties
set命令,例如:set pig.exec.nocombiner true
注意:properties文件,使用标准的Java的properties文件格式
地方他们的优先级如下:
pig.properties < -D Pig property < -P properties file < set comman
指定hadoop的文件配置属性与Pig是一样的。
Hadoop和pig的所有属性值,最后都会在pig里统一收集起来,它是有效的对于任何UDF
例如UDFContext对象,为了访问这些属性,我们可以调用getJobConf方法
4,Pig一些注意事项
1. 确保你的JDK安装完毕
2. 确保的你的pig的bin目录执行脚本环境变量已经安装
export PATH=/<my-path-to-pig>/pig-0.9.0/bin:$PATH
3. 确保你的PIG_HOME环境变量是有效的
export PIG_HOME=/<my-path-to-pig>/pig-0.9.0
4. 配置ant脚本,编译pig的文档
5. 配置PIG_CLASSPATH,指定集群所需的所有的配置文件,包括hadoop的core-site.xml,hdfs-site.xml和mapred-site.xml
6. 掌握pig的一些基本UDF函数
ExtractHour,提取小时从每行数据中
NGramGenerator,生成n-garms的words
NonURLDetector,移除一个空的列,或者值是url的数据
ScoreGenerator,计算n-garm的分数
ToLower,转小写
TutorialUtil,分割查询字符串组成一个words
- 浏览: 1050348 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1441)
- 软件思想&演讲 (9)
- 行业常识 (250)
- 时时疑问 (5)
- java/guava/python/php/ruby/R/scala/groovy (213)
- struct/spring/springmvc (37)
- mybatis/hibernate/JPA (10)
- mysql/oracle/sqlserver/db2/mongdb/redis/neo4j/GreenPlum/Teradata/hsqldb/Derby/sakila (268)
- js/jquery/jqueryUi/jqueryEaseyUI/extjs/angulrJs/react/es6/grunt/zepto/raphael (81)
- ZMQ/RabbitMQ/ActiveMQ/JMS/kafka (17)
- lucene/solr/nuth/elasticsearch/MG4J (167)
- html/css/ionic/nodejs/bootstrap (19)
- Linux/shell/centos (56)
- cvs/svn/git/sourceTree/gradle/ant/maven/mantis/docker/Kubernetes (26)
- sonatype nexus (1)
- tomcat/jetty/netty/jboss (9)
- 工具 (17)
- ETL/SPASS/MATLAB/RapidMiner/weka/kettle/DataX/Kylin (11)
- hadoop/spark/Hbase/Hive/pig/Zookeeper/HAWQ/cloudera/Impala/Oozie (190)
- ios/swift/android (9)
- 机器学习&算法&大数据 (18)
- Mesos是Apache下的开源分布式资源管理框架 (1)
- echarts/d3/highCharts/tableau (1)
- 行业技能图谱 (1)
- 大数据可视化 (2)
- tornado/ansible/twisted (2)
- Nagios/Cacti/Zabbix (0)
- eclipse/intellijIDEA/webstorm (5)
- cvs/svn/git/sourceTree/gradle/jira/bitbucket (4)
- jsp/jsf/flex/ZKoss (0)
- 测试技术 (2)
- splunk/flunm (2)
- 高并发/大数据量 (1)
- freemarker/vector/thymeleaf (1)
- docker/Kubernetes (2)
- dubbo/ESB/dubboX/wso2 (2)
最新评论
发表评论
-
CDH与原生态hadoop之间的区别
2017-07-26 12:45 992需要认识的几个问题 ------------------- ... -
Cloudera的CDH和Apache的Hadoop的区别
2017-07-26 12:49 576目前而言,不收费的Hadoop版本主要有三个(均是国外厂商) ... -
大数据、云计算系统高级架构师课程学习路线图
2017-07-24 17:10 598大数据、云计算系统高级架构师课程学习路线图 大数据 ... -
Oozie简介
2017-07-24 12:17 1062在Hadoop中执行的任务有时候需要把多个Map/Reduc ... -
清理ambari安装的hadoop集群
2017-07-24 11:29 925本文针对redhat或者centos 对于测试集群,如果通 ... -
hawk大数据基础知识总结(2)
2017-05-13 15:13 505hawk 英[hɔ:k] 美[hɔk] n. 鹰; 霍克; ... -
hawk大数据基础知识总结(1)
2017-05-13 14:41 796一、大数据概述 1.1大 ... -
ambari是什么
2017-05-11 19:52 648Apache Ambari是一种基于Web的工具,支持Apa ... -
数据仓库中的Inmon与Kimball架构之争
2017-05-11 13:40 696对于数据仓库体系结构的最佳问题,始终存在许多不同的看法,甚至 ... -
Hive的meta 数据支持以下三种存储方式
2017-05-04 13:48 900测试环境下Hive总出问题 ... -
大数据要学习知识
2017-05-02 17:18 49301 技术层面 1.紧贴 ... -
Spark Streaming简介
2017-05-02 16:28 7451.1 概述 Spark Streaming 是Spark ... -
pentaho套件
2017-04-28 15:52 831有人统计过,在整个数据分析过程里,收集、整理数据的工作大致占全 ... -
Impala:新一代开源大数据分析引擎
2017-04-22 10:48 729大数据处理是云计算中非常重要的问题,自Google公司提出M ... -
Weka是什么
2017-04-10 13:17 1070Weka的全名是怀卡托智 ... -
解密Apache HAWQ ——功能强大的SQL-on-Hadoop引擎
2017-04-10 12:04 841一、HAWQ基本介绍 HAWQ ... -
Kettle的使用
2017-04-06 12:11 600Kettle是一款国外开源 ... -
clouder manager端口7180没有打开为什么
2017-03-27 10:56 1184修改 clouder-manager.repo新建内容我们需要 ... -
Impala与Hive的比较
2017-03-19 13:09 7871. Impala架构 Impala是Clo ... -
Cloudera Manager、CDH零基础入门、线路指导
2017-03-19 12:53 1267问题导读:1.什么是cloudera CM 、CDH?2.C ...
相关推荐
本课程聚焦于“Hadoop 08 Pig安装与Pig Latin语言”,旨在深入理解Pig的工作原理及其在实际应用中的价值。 Pig拉丁语(Pig Latin)是Pig的编程语言,它允许用户以一种声明性的方式编写数据处理逻辑,而非传统的低级...
Pig的安装包括下载安装包、设置环境变量、验证安装等步骤,同时,Pig提供了多种工作模式,如本地模式和MapReduce模式,以适应不同的使用场景。 在【Pig的运行和操作】部分,课程介绍了Pig的运行方法,包括通过脚本...
五、测试Pig安装 完成上述步骤后,重新加载环境变量(`source ~/.bashrc`),然后在命令行输入`pig`,如果成功,会启动Pig的交互式Shell。 六、使用Pig Latin进行数据处理 Pig Latin是Pig的编程语言,用户可以通过...
【大数据技术基础实验报告——Pig的安装配置与应用】 Pig是Apache Hadoop项目中的一个数据处理工具,它提供了一种高级的编程语言,称为Pig Latin,用于编写复杂的数据处理作业。在这个实验报告中,我们将深入理解...
3. **验证Pig安装** 使用`pig -v`命令来确认Pig的版本信息。如果一切正常,将显示Pig的版本号。 #### Oozie的安装与配置 1. **准备编译环境** 在编译Oozie之前,需要先准备好编译环境。这包括Java JDK的安装,...
**Pig MapReduce模式的安装与配置** Apache Pig 是一个用于大数据分析的平台,它提供了一种高级语言,称为Pig Latin,使得用户能够编写处理大量数据的复杂脚本,而无需关注底层的MapReduce实现。在Hadoop生态系统中...
29.Pig安装与Pig Latin语言,应用案例1 30.Pig安装与Pig Latin语言,应用案例2 31.Pig安装与Pig Latin语言,应用案例3 32.Pig安装与Pig Latin语言,应用案例4 33.hadoop高级介绍 34.hadoop高级介绍 35.hadoop高级...
文件中提供的Pig安装指南指向了Apache官方网站的设置页面。安装Pig首先需要下载Pig的压缩包,然后解压,并将Pig的安装路径添加到系统的环境变量PATH中。这一操作确保在任何目录下都可以通过命令行直接调用Pig命令。...
《Apache Pig 0.17.0 安装与配置指南》 Apache Pig 是一个用于大数据分析的平台,它提供了一种高级语言 Pig Latin 来处理大规模数据集。Pig-0.17.0 是该平台的一个稳定版本,包含了多项优化和改进,适用于Hadoop...
5.Pig安装与Pig Latin语言,应用案例 6.Hive体系架构安装与HiveQL应用案例 7.HBase体系架构与安装 8.HBase数据分析与建模,实战案例剖析 9.Map-Reduce数据分析,Hadoop流,应用案例 10.Map-Reduce数据分析之一,API...
【标题】"pig-0.16.0.tar安装包" 涉及的主要知识点是Apache Pig的安装和使用,这是一个基于Hadoop的数据流编程平台,用于处理大规模数据集。Pig Latin是Pig的编程语言,它允许用户编写复杂的数据处理任务,而无需...
10. Pig安装:需要下载和安装Pig版本为pig-0.12.0,并配置相应的环境变量。 11. Hive安装:需要下载和安装Hive版本为hive-0.12.0,并配置相应的环境变量。 12. Ganglia安装:需要下载和安装Ganglia,并配置相应的...
下载并解压"Pig-0.9.2.tar.gz"后,开发者可以在本地或Hadoop集群上安装和运行Pig。这通常包括配置环境变量,设置Hadoop路径,然后通过Pig命令行或者脚本执行Pig Latin脚本。 5. **Pig的应用场景**: - 数据清洗:...
用户在下载后,可以使用 `tar` 命令解压并安装,以在本地环境中使用 Apache Pig 0.15.0。 标签“pig-0.15.0”是该资源的标识符,方便用户搜索和区分不同版本的 Pig。在实际应用中,选择合适的版本至关重要,因为...
PIGO是一个采集引擎,开始的时候是按照采集各大搜索引擎而设计的。随着需求的增加,现在PIGO不单单能采集搜索引擎,而且能聚合结果,甚至,加载不同的核心,PIGO就变成不同的网站。... 安装步骤1、把PIGO文件夹复制粘
如果需要,也可以使用`make`和`make install`来编译和安装Pig到系统路径。 4. **设置环境变量**:为了使Pig在命令行中可用,可能需要将它的bin目录添加到PATH环境变量中,例如,添加`export PATH=$PATH:/path/to/...
Pig-Toolbox_v1.0.7.6 谷歌浏览器插件,CRX可解压,用开发者模式安装
对于想要开始使用Pig的读者,书中的内容会从下载Pig包开始讲起,包括从Apache、Cloudera、Maven仓库等不同途径获取Pig的方法,以及安装和运行Pig的基本步骤。这本书还可能涉及如何设置和配置Pig环境、使用Pig Latin...