tangtb

Hadoop,SpringMVC,ExtJs,Struts2,Spring,SpringSecurity,Hibernate,Struts
posts - 25, comments - 88, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Pig安装配置及基本使用

Posted on 2014-06-04 22:14 tangtb 阅读(5878) 评论(0)  编辑  收藏 所属分类: HadoopPig

前置条件

成功安装配置Hadoop集群

下载并解压pig安装包

下载地址:http://pig.apache.org/

解压pig安装包:tar -zxvf pig-0.12.0.tar.gz

 

环境变量

Pig工作模式

本地模式:只需要配置PATH环境变量${PIG_HOME}/bin即可,适用于测试

Mapreduce模式:需要添加环境变量PIG_CLASSPATH=${HADOOP_HOME}/conf/,指向hadoop的conf目录

 

本例直接配置为Mapreduce模式

启动grunt shell

首先确定Hadoop集群已经启动,使用jps查看进程

[hadoop@appserver ~]$ pig 进入grunt shell

 

使用help命令查看帮助信息

查看grunt shell命令

准备测试数据(下载数据文件

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

grunt shell中将ncdc_data.txt存入hdfs

grunt> copyFromLocal ~/ncdc_data.txt ./

使用Pig latin求年最高气温

加载天气数据

grunt> A = LOAD 'ncdc_data.txt' USING PigStorage(':') AS (year:int, temp:int, quality:int);

过滤数据

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);

按年分组天气数据

grunt> C = GROUP B BY year;

逐行扫描数据并求最大值和对应的年份(group)

grunt> D = FOREACH C GENERATE group, MAX(B.temp) AS max_temp;

输出结果

grunt> DUMP D;

存储结果到文件

grunt> STORE D INTO 'max_temp' USING PigStorage(':');

查看结果

grunt> cat max_temp

 


只有注册用户登录后才能发表评论。


网站导航: