一、Pig简介
Pig是基于hadoop的一个数据处理的框架。
MapReduce是使用java进行开发的,Pig有一套自己的数据处理语言,Pig的数据处理过程要转化为MR来运行。
相比 Java 的 MapReduce API ,Pig为大型数据集的处理提供了更高层次的抽象,与MapReduce相比,Pig提供了更丰富的数据结构,一般都是多值和嵌套的数据结构。Pig还提供了一套更强大的数据变换操作,包括在MapReduce中被忽视的连接Join操作。
Pig包括两部分:
1、用于描述数据流的语言,称为Pig Latin。
2、用于执行 Pig Latin 程序的执行环境,当前有两个环境:单JVM中的本地执行环境和Hadoop集群上的分布式执行环境。
Pig内部,每个操作或变换是对输入进行数据处理,然后产生输出结果,这些变换操作被转换成一系列MapReduce作业,Pig让程序员不需要知道这些转换具体是如何进行的,这样工程师可以将精力集中在数据上,而非执行的细节上。
二、Pig的数据类型
基本数据类型:int、long、float、double、chararry、bytearray
复合数据类型:Map、Tuple、Bag
Bag的类型如{(‘age’,31),(‘name’,’张三’)}
三、安装
1、使用命令tar -zxvf pig-0.11.1.tar.gz
解压缩
2、使用命令mv pig-0.11.1 pig
进行重命名
3、编辑文件vi /etc/profile
设置环境变量
export PIG_HOME=/usr/local/bin
export PATH =......:$PIG_HOME/bin:$....
保存,然后执行source /etc/profile
4、pig需要依赖于hadoop,因此需要修改配置文件。
编辑文件$PIG_HOME/conf/pig.properties,增加两行如下内容
fs.default.name=hdfs://liguodong:9000
mapred.job.tracker=liguodong:9001
四、使用Pig对HDFS的文件进行分析处理
1、把待处理的数据上传到HDFS中
hadoop fs -put HTTP_20130313143750.dat /wlan
2、基本操作
进入Pig命令行,输入:pig
把HDFS中的数据转换为pig可以处理的模式,
别名A:方便别人引用
A = LOAD '/wlan' AS (t0:long, msisdn:chararray, t2:chararray, t3:chararray, t4:chararray,
t5:chararray, t6:long, t7:long, t8:long, t9:long, t10:chararray);
查看load的信息
DUMP A;
把里面的有用的字段抽取出来
B = FOREACH A GENERATE msisdn, t6, t7, t8, t9; DUMP B;
数据分组
按照手机号码进行分组
C = GROUP B BY msisdn;
DUMP C;
流量汇总(在分组的基础上进行流量汇总)
分组后,分组的字段叫group。
D = FOREACH C GENERATE group, SUM(B.t6), SUM(B.t7), SUM(B.t8), SUM(B.t9);
DUMP D;
存储到HDFS中
STORE D INTO '/wlan_result';
hadoop fs -ls /wlan_result
hadoop fs -text /wlan_result/part*
排序
E = ORDER D BY group;
DUMP E;
原文链接:https://blog.csdn.net/scgaliguodong123_/article/details/44925583
本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。
还没有人抢沙发呢~