分享

Pig安装配置及基本使用

nettman 发表于 2014-8-22 14:10:17 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 6 18675
问题导读:
1.Pig有几种工作模式?
2.如何启动进入pig?
3.本文中如何使用Pig latin来求年最高气温?








下载并解压pig安装包
下载地址:http://pig.apache.org/
解压pig安装包:tar -zxvf pig-0.12.0.tar.gz
pig_1.png


环境变量
Pig工作模式
本地模式:只需要配置PATH环境变量${PIG_HOME}/bin即可,适用于测试
Mapreduce模式:需要添加环境变量PIG_CLASSPATH=${HADOOP_HOME}/conf/,指向hadoop的conf目录
pig_2.png
本例直接配置为Mapreduce模式


启动grunt shell
首先确定Hadoop集群已经启动,使用jps查看进程
[hadoop@appserver ~]$ pig 进入grunt shell
pig_3.png


使用help命令查看帮助信息
pig_4.png


查看grunt shell命令
pig_5.png


准备测试数据(下载数据文件
以NCDC天气数据求年最大气温为例,准备数据如下(为方便测试每列数据只包含年、气温和数据状态并以冒号分割):

pig_6.png


在grunt shell中将ncdc_data.txt存入hdfs中

grunt> copyFromLocal ~/ncdc_data.txt ./

pig_7.png


使用Pig latin求年最高气温加载天气数据
grunt> A = LOAD 'ncdc_data.txt' USING PigStorage(':') AS (year:int, temp:int, quality:int);

pig_8.png

过滤数据
grunt> B = FILTER A BY temp != 9999 AND ((chararray)quality matches '[01459]');
或B = FILTER A BY temp != 9999 AND (
                   quality == 0 OR quality == 1 OR quality == 4 OR quality == 5 OR quality == 9);

pig_9.png

按年分组天气数据
grunt> C = GROUP B BY year;

pig_10.png

逐行扫描数据并求最大值和对应的年份(group)
grunt> D = FOREACH C GENERATE group, MAX(B.temp) AS max_temp;

pig_11.png

输出结果
grunt> DUMP D;

pig_12.png
pig_13.png


存储结果到文件
grunt> STORE D INTO 'max_temp' USING PigStorage(':');

pig_14.png
pig_15.png


查看结果
grunt> cat max_temp

pig_16.png



加微信w3aboutyun,可拉入技术爱好者群

已有(6)人评论

跳转到指定楼层
hery 发表于 2014-10-30 10:16:10
不错,比较详细。。。
回复

使用道具 举报

hahaxixi 发表于 2015-1-12 20:16:27
不错哦,3q~~~~·
回复

使用道具 举报

pioneer 发表于 2015-2-6 18:22:04
确实是一个很好的实例,谢谢!
回复

使用道具 举报

ainubis 发表于 2015-3-29 14:23:50
好东西,多xie楼主分享
回复

使用道具 举报

SuperDove 发表于 2016-10-18 16:29:17
很beautiful的一个帖子,完美
回复

使用道具 举报

江火似流星 发表于 2018-12-27 20:04:35
很好,感谢您的分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条