Pig实战

2019-03-28 13:10|来源: 网络

1. pig简介

2. 安装pig

3. 实战pig

4. 深入pig

5. 参考资料及代码下载

<1>. Pig简介

pigHadoop项目的一个拓展项目, 用以简化hadoop编程(简化的程度超乎想象啊),并且提供一个更高层次抽象的数据处理能力,同时能够保持hadoop的简单和可靠性。

<2>. 安装pig

2.1 下载pig:[点击下载]pig安装包

2.2 解压下载完成的pig安装包:

xuqiang@Ubuntu:~/hadoop/src/pig$ tar zxvf pig-0.8.1.tar.gz

2.3 设置环境变量

xuqiang@ubuntu:~$ vim .bashrc

export PATH=~/hadoop/src/pig/pig-0.8.1/bin/:$PATH
export PIG_HOME=~/hadoop/src/pig/pig-0.8.1/
export HADOOP_CONF_DIR=~/hadoop/src/hadoop-0.21.0/conf
export PIG_CLASSPATH=~/hadoop/src/hadoop-0.21.0/conf
这里需要说明的是pig是能够运行在两种模式下:local模式和mapreduce模式,变量HADOOP_CONF_DIR主要是为了在mapreduce模式下使用。

为了使新设置的环境变量生效,使用如下命令:

xuqiang@ubuntu:~$ source .bash_profile
测试一下pig的安装是否正确:

xuqiang@ubuntu:~$ pig -x local

2011-06-05 17:48:49,480 [main] INFO org.apache.pig.Main - Logging error messages to: /home/xuqiang/pig_1307321329471.log
2011-06-05 17:48:49,926 [main] INFO org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to hadoop file system at: file:///
grunt>

此时表明pig已经正确安装。

<3>. Pig实战

在pig下载的安装包,解压完成了之后,有一个tutorial目录,我们使用里面的数据来开始pig学习。如果tutorial目录下没有存在pigtutorial.tar.gz文件的话,那么需要使用ant来编译出这个文件:

xuqiang@ubuntu:~/hadoop/src/pig/pig-0.8.1$ ant

这时ant将会下载依赖的jar的文件,同时将编译出对应版本的pig jar文件。然后进入tutorial目录,执行ant命令:

xuqiang@ubuntu:~/hadoop/src/pig/pig-0.8.1$ cd tutorial/

xuqiang@ubuntu:~/hadoop/src/pig/pig-0.8.1/tutorial$ ant
这时将生成pigtutorial.tar.gz文件,解压该文件形成pigtmp的文件夹。该文件夹结构:

.

|-- excite-small.log
|-- excite.log.bz2
|-- pig.jar
|-- script1-hadoop.pig
|-- script1-local.pig
|-- script2-hadoop.pig
|-- script2-local.pig
`-- tutorial.jar
 
1 directory, 9 files

我们下面将主要分析excite-small.log文件,该文件的数据结构如下:

UserIDTimeStampSearchQuery

我们首先将excite-small.log加载到一个变量(也称之为alias)中,我们将使用该变量来表示这个数据集:

grunt> log = load 'excite-small.log' as (user, time, query);

注意的是这时pig并没有运行该命令,仅仅是解析了该命令,只有到使用dump命令或者是store命令时pig才会真正执行该命令。dump命令将打印出这个变量的内容,store命令将变量所代表的内容保存到一个文件中。

这时如果想要查看该log的结构:

grunt> describe log;

log: {user: bytearray,time: bytearray,query: bytearray}

这是如果我们想要查看该log文件的前4行的话:

grunt> lmt = limit log 4;

grunt> dump lmt;

这时将打印出log文件的前四行数据。

相关问答

更多
  • http://www.tudou.com/programs/view/Xs_2NQ5Xkis/ 视频正的是现时洪拳比较有代表性的人物。
  • 推荐你看看老夫子老师的《基于QT平台的手持媒体播放器项目实战(madplay交叉编译、进程通信、移植)》这套视频教程挺不错的,我把下载地址给你http://kuai.xunlei.com/d/xmBrD7gsk8zAUgQAbdb
  • 这个东西你可以到金蝶官网去看看啊 应该都有的 或者金蝶论坛 武汉金蝶 http://www.whtaylorsoft.com/
  • pig☆pig[2023-09-13]

    我怀念过去的你,怀念我留在单车上的十七岁,怀念曾经因你的一阵微笑而激荡起来的风,夹着悲欢和一去不再回来的昨天,浩浩荡荡地穿越我单薄的青春。明亮。伤感。无穷尽。
  • pig的中间是我!而我的旁边是你…
  • 实战光靠书本是学不来的,这方面的书都差不多,关键是你要自己亲手去实现书里面的项目,实现的过程中多思考,尽量先自己试着解决,实在不行再去参考书里的解决方案。此外还要重点掌握调试程序的技术。不过要成为实战高手还是要在真实的项目里面去学习,积累。
  • JQuery实战下载[2021-12-08]

    买本吧,这本书很多时候用来查的。而且你如果真想学JQUERY的话,买这本书值的。去淘宝看看一般有7~8折。
  • 上述错误的原因是我的hadoop版本和hbase不兼容。 我安装了hbase-0.98.16-hadoop2,猪代码运行时没有错误。 通常当你看到java.lang.NoSuchMethodError时,它可能是版本之间不兼容的一个指示。 The reason for the error above was incompatibility between my hadoop version and hbase. I installed hbase-0.98.16-hadoop2 and the pig co ...
  • 我认为你必须使用下面的命令来输入grunt shell。 pig -useHCatalog 请参阅此链接, 该链接显示为了处理配置单元,我们必须使用-use HCatalog,它从hive lib注册所有必需的jar。 第二个建议:尝试使用以下命令: STORE part3 into 'pedestrian_count' USING org.apache.hive.hcatalog.pig.HCatStorer(); 替换part3如下: part3 = FOREACH part2 GENERATE F ...
  • 我很害怕文档不完全是最新的。 PigDump在0.7版本中被删除。 这在这里陈述: 我们还删除了org.apache.pig.builtin.BinaryStorage加载器/存储功能和org.apache.pig.builtin.PigDump,它们仅在流媒体中使用。 如果需要,可以恢复它们 - 我们只需要实现相应的Input / OutputFormats。 I'm affraid the documentation is not completely up to date. PigDump was r ...