大数据技术基础实验报告pig的安装配置与应用.docx
- 文档编号:23239995
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:12
- 大小:2.60MB
大数据技术基础实验报告pig的安装配置与应用.docx
《大数据技术基础实验报告pig的安装配置与应用.docx》由会员分享,可在线阅读,更多相关《大数据技术基础实验报告pig的安装配置与应用.docx(12页珍藏版)》请在冰豆网上搜索。
大数据技术基础实验报告pig的安装配置与应用
大数据技术基础实验报告-pig的安装配置与应用
实验内容:
一、Pig的安装与配置方法
在Linux系统中安装与配置Pig,并分别以Local模式和Mapreduce模式测试安装的环境
二、Pig的基本使用方法
目标1:
每名学生被多少位老师教过
方法一:
先DISTINCT,再计数;
方法二:
先分组,再用FOREACH嵌套,使用DISTINCT。
操作过程:
首先创建一份数据源文件
[hadoop@hadoop1~]$catscore.txt
James,Network,Tiger,100
James,Database,Tiger,99
James,PDE,Yao,95
Vincent,Network,Tiger,95
Vincent,PDE,Yao,98
Vincent,PDE,
NocWei,PDE,Yao,100
hadoopfs-putscore.txt
grunt>A=LOAD'/score.txt'USINGPigStorage(',')AS(student,course,teacher,score:
int);
grunt>DESCRIBEA;
grunt>B=FOREACHAGENERATEstudent,teacher;#只提取student和teacher,其他的丢掉
grunt>DESCRIBEB;#查看B数据,会发现只有两个元祖
grunt>C=DISTINCTB;#对B的数据去重
grunt>D=FOREACH(GROUPCBYstudent)GENERATEgroupASstudent,COUNT(C);
grunt>DUMPD
#结果
(James,2)
(NocWei,1)
(Vincent,3)
grunt>
grunt>E=groupBbystudent;
grunt>F=foreachE
>>{
>>T=B.teacher;
>>uniq=DISTINCTT;
>>generategroupasstudent,COUNT(uniq)ascnt;
>>}
目标2:
找出每门课程最优秀的两名学生
步骤一:
groupby
-groupby的嵌套方法
步骤二:
orderby
-foreach嵌套
步骤三:
limit
-配合orderby使用
步骤四:
flantten
-去括号过程
grunt>A=LOAD'/score.txt'USINGPigStorage(',')as(student,course,teacher,score:
int);
grunt>dumpA
(James,Network,Tiger,100)
(James,Database,Tiger,99)
(James,PDE,Yao,95)
(Vincent,Network,Tiger,95)
(Vincent,PDE,Yao,98)
(Vincent,PDE,,)
(NocWei,PDE,Yao,100)
grunt>B=FOREACHAGENERATEstudent,course,score;
grunt>dumpB
(James,Network,100)
(James,Database,99)
(James,PDE,95)
(Vincent,Network,95)
(Vincent,PDE,98)
(Vincent,PDE,)
(NocWei,PDE,100)
grunt>C=groupBbycourse
grunt>dumpC
(PDE,{(NocWei,PDE,100),(Vincent,PDE,),(Vincent,PDE,98),(James,PDE,95)})
(Network,{(Vincent,Network,95),(James,Network,100)})
(Database,{(James,Database,99)})
grunt>D=FOREACHC
>>{
>>sorted=ORDERBBYscoreDESC;
>>top=LIMITsorted2;
>>GENERATEgroupAScourse,topAStop;
>>}
grunt>dumpD
(Database,{(James,Database,99)})
(Network,{(James,Network,100),(Vincent,Network,95)})
(PDE,{(NocWei,PDE,100),(Vincent,PDE,98)})
grunt>E=FOREACHDGENERATEcourse,FLATTEN(top);#对输出格式去括号
grunt>dumpE
(Database,James,Database,99)
(Network,James,Network,100)
(Network,Vincent,Network,95)
(PDE,NocWei,PDE,100)
(PDE,Vincent,PDE,98)
实验基本过程:
一、下载配置pig
1.下载并解压pig安装包
下载地址:
http:
//pig.apache.org/
2.解压pig安装包:
tar-zxvfpig-0.12.0.tar.gz
3.配置环境变量
4.启动gruntshell
5.使用help命令查看帮助信息
6.查看gruntshell命令
二、应用
1.准备测试数据
2.在gruntshell中将ncdc_data.txt存入hdfs中
3.加载天气数据
4.过滤数据
5.按年分组天气数据
6.逐行扫描数据并求最大值和对应的年份(group)
7.输出结果
8.存储结果到文件
9.查看结果
实验结果:
疑难小结(总结实验中遇到的问题):
问题:
出现java.lang.OutOfMemoryError:
Javaheapspace
解决方案:
经过在网上的查找,原因:
没有设置pig的内存大小。
$exportPIG_HEAPSIZE=2096
即可
主要操作过程:
一、下载配置pig
1.下载并解压pig安装包
下载地址:
http:
//pig.apache.org/
2.解压pig安装包:
tar-zxvfpig-0.12.0.tar.gz
3.配置环境变量
vi/etc/profile
4.启动gruntshell
pig
5.使用help命令查看帮助信息
help
6.查看gruntshell命令
fs
二、应用
1.准备测试数据
2.在gruntshell中将ncdc_data.txt存入hdfs中
copyFromLocal~/ncdc_data.txt./
3.加载天气数据
A=LOAD'ncdc_data.txt'USINGPigStorage(':
')AS(year:
int,temp:
int,quality:
int);
4.过滤数据
B=FILTERABYtemp!
=9999AND((chararray)qualitymatches'[01459]');
5.按年分组天气数据
C=GROUPBBYyear;
6.逐行扫描数据并求最大值和对应的年份(group)
D=FOREACHCGENERATEgroup,MAX(B.temp)ASmax_temp;
7.输出结果
DUMPD;
8.存储结果到文件
STOREDINTO'max_temp'USINGPigStorage(':
');
9.查看结果
catmax_temp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 技术 基础 实验 报告 pig 安装 配置 应用