转载请标明出处SpringsSpace: http://springsfeng.iteye.com
1. Pig简介
Pig是Yahoo捐献给apache的一个项目,它是SQL-like语言,是在MapReduce上构建的一种高级
查询语言,
把一些运算编译进MapReduce模型的Map和Reduce中,并且用户可以定义自己的功能。这是
Yahoo开发的又一个克隆Google的项目:Sawzall。
2. Pig 安装
(1) 确保JDK6已经安装,并且已经export JAVA_HOME;
(2) 下载最新版pig:0.11.0;
(3) 解压至/usr/custom/pig-0.11.0;
(4) 配置环境变量:
export PIG_HOME=/usr/custom/pig-0.11.0
export PATH=$PIG_HOME/bin:$PATH
3. 启动
Pig有两种模式:
(1) Local Mode, 即本地模式,这种模式下Pig运行在一个JVM里,访问的是本地的文件系统,
只适合于小规模数据集,一般是用来体验Pig。 而且,它并没有用到Hadoop的Local runner,
Pig把查询转换为物理的Plan,然后自己去执行。在终端下输入:
pig -x local
就可以进入Local模式了。
(2) Hadoop模式,这种模式下,Pig才真正的把查询转换为相应的MapReduce Jobs,并提交
到Hadoop集群去运行,集群可以是真实的分布式也可以是伪分布式。要想Pig能认识Hadoop,
你要告诉它Hadoop的版本以及一些关键daemon的信息(也就是Namenoder的Address和
Port)。比如,下面这个可以允许Pig连接到任何Hadoop0.20.*上:
export PIG_HADOOP_VERSION=20
针对HADOOP2.0.2是:
export PIG_HADOOP_VERSION=23
接下来,还要指明集群的Namenode的所在。有两种方法,
一种就是把你Hadoop的conf目录添加到Pig的Classpath上:
export PIG_CLASSPATH=$HADOOP_HOME/etc/hadoop
还有一种就是在Pig目录的conf文件夹(可能需要自己创建)里创建一个pig.properties文件,
然后在里面添加集群的Namenode和Jobtracker的信息:
fs.defaultFS=hdfs://localhost:9000
mapred.job.tracker=localhost:900
建议采用这种方式。
说明:经测试, 在pig-0.11.0版本基于Hadoop-2.0.2-aplha版本时,不需要做上述设置,直
接执行:
pig -x mapreduce
即进入伪分布式下。
启动:在终端中执行命令:pig
执行该命令时默认采用Hadoop模式,也可执行:pig -x mapreduce,该命令明确指明进入
分布式模式下。
4. 使用示例
(1) 上传文件
[kevin@linux-fdc bin]$ hadoop fs -mkdir /log
[kevin@linux-fdc bin]$ hadoop fs -copyFromLocal /usr/custom/pig-0.11.0/tutorial/data
/excite-small.log /log/excite-small.log
查看结果:
(2) 装载统计
grunt> log = LOAD '/log/excite-small.log' AS (user:chararray, time:long, query:chararray);
grunt> lmt = LIMIT log 4;
grunt> DUMP lmt;
grunt> grpd = GROUP log BY user;
grunt> cntd = FOREACH grpd GENERATE group, COUNT(log);
grunt> STORE cntd INTO '/log-output';
查看详细执行步骤:
grunt> illustrate cntd;
5.异常解决: 针对pig-0.11.0, pig-0.10.1版本。
直接下载pig-0.10.1.tar.gz和pig-0.11.0.tar.gz按照上述的配置在Hadoop2.0.2上运行时,
执行DUMP 或STORE命令时将产生异常:
解决方法:下面的解决方法是基于pig-0.10.1版本为基础的,pig-0.11.0的解决方案类似。
(1) cd /${PIG_HOME}
(2) mv pig-0.10.1-withouthadoop.jar pig-0.10.1-withouthadoop.jar.bak
(3) mv pig-0.10.1.jar pig-0.10.1.jar.bak
(4) ant clean jar-withouthadoop -Dhadoopversion=23
编译完成后将在${PIG_HOME}/build目录下生成:
pig-0.10.1-SNAPSHOT-core.jar, pig-0.10.1-SNAPSHOT-withouthadoop.jar
(5) 将上一步生成的两个文件Copy至${PIG_HOME}下,并进行改名:
pig-0.10.1-SNAPSHOT-core.jar --> pig-0.10.1.jar
pig-0.10.1-SNAPSHOT-withouthadoop.jar --> pig-0.10.1-withouthadoop.jar
(6) 此时运行"DUMP lmt;" 是,将抛出异常:
这个问题主要时因为我的笔记本内存较低的原因, 执行: illustrate cntd; 可看见运行结果是正确的:
相关推荐
这是学习pig的极好学习资料总结了很多知识,通俗易懂
大数据技术基础实验报告-pig的安装配置与应用
来试试Pig安装,与学学Pig Latin语言,玩玩应用案例
这是一个关于pig的mapreduce模式的安装及配置的文档, 图文结合,按步骤详细介绍了整个过程。希望对大家有所帮助。
能独立熟练完成Hadoop的...能独立完成pig的安装并且利用pig做简单的数据分析工作 能独立完成Hbase的安装和配置 了解Hbase的原理并能进行简单的shell操作 能独立完成Hive的安装和配置 了解Hive的原理及进行HiveQL操作
pig学习 PPT
完整版大数据云计算课程 Hadoop数据分析平台系列课程 Hadoop 08 Pig安装与Pig Latin语言,应用案例 共26页.rar
pig 安装包。最新版本。 Pig 的安装和配置http://blog.csdn.net/shenlan211314/article/details/6326599
PIGO是一个采集引擎,开始的时候是按照采集各大搜索引擎而设计的。随着需求的增加,现在PIGO不单单能采集搜索引擎,而且能聚合结果,甚至,加载不同的核心,PIGO就变成不同的网站。... 安装步骤1、把PIGO文件夹复制粘
pig0.15源码,适合小白学习大数据参考和使用
PIG(国内微服务热度最高的一个社区)
Learn to use Apache Pig to develop lightweight big data applications easily and quickly. This book shows you many optimization techniques and covers every context where Pig is used in big data ...
Pig-Toolbox_v1.0.7.6 谷歌浏览器插件,CRX可解压,用开发者模式安装
《Pig编程指南》不仅为初学者讲解ApachePig的基础知识,同时也向有一定使用经验的高级用户介绍更加综合全面的Pig重要特性,如PigLatin脚本语言、控制台shell交互命令以及用于对Pig进行拓展的用户自定义函数(UDF)等。...
Hadoop系统的pig工具包,很好用的
apache pig 基础及应用,urldecode row_number web日志分析 根据 用户行为 做出 简易的 相似度 判断。
pig将就的命令
大数据pig实战,大数据pig实战,大数据pig实战大数据pig实战大数据pig实战
pig源码包,最好的学习资料还是源码包。里边包括核心包,以及其他贡献的包,pigunit,还有源码