Pig
- pig 是基于hadoop的一个数据处理框架.
- MapReduce是使用java开发的。Pig有一套自己的数据处理语言。Pig的数据处理过程要转化为MR 来运行。
- Pig的数据处理语言是数据流方式,类似于初中的数学题,需要一步一步解,最终得到结果。
- Pig基本数据类型:int、long、float、double、chararray、bytearray
复合数据类型:Map、Tuple(类似于数组)、Bag(类似数据字典)
Bag的数据类型如:{(‘age’,31),(‘name’,’张三’)}
如何安装pig:
1.把pig-0.11.1.tar.gz复制到/usr/local下
2.使用命令tar -zxvf pig-0.11.1.tar.gz解压缩
3.使用命令mv pig-0.11.1 pig 进行重命名
4. 编辑文件vi /etc/profile 设置环境变量
export $PIG_HOME=/usr/local/bin export PATH =......$PIG_HOME/bin....
保存,然后执行source /etc/profile
5. 编辑文件$PIG_HOME/conf/pig.properties,增加两行如下内容
fs.default.name=hdfs://hadoop:9000
mapred.job.tracker=hadoop:9001
pig是基于hadoop框架的数据处理框架,所以需要跟hadoop 关联起来,上边的配置主要针对的是Namenode 和 JobTracker
如何使用pig:
对wlan数据如何使用pig进行分析处理
1. 把待处理的数据上传到HDFS中
2. 把HDFS中的数据转换为pig可以处理的模式
按照以下图里的格式进行转化:
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);
A是别名 ,方便引用。
如何查看是否加载进去?
DUMP A ;
3.把里面的有用的字段抽取出来
B = FOREACH A GENERATE msisdn, t6, t7, t8, t9;
Pig是一步一步来的,如果业务比较复杂,通过sql无法一步解决,用pig非常方便。
DUMP B;
4.分组数据
C = GROUP B BY msisdn;
因为有的手机号有重复,所以我们根据手机号进行分组。
DUMP C;
5.流量汇总
D = FOREACH C GENERATE group, SUM(B.t6), SUM(B.t7), SUM(B.t8), SUM(B.t9);
分组之后的名字,当我们就叫group.
DUMP D;
6.结果在pig中, 存储到HDFS中
STORE D INTO ‘/wlan_result’;
7.进入hdfs进行查看,是否保存到这里。
其中有一个文件是不为空,查看该文件是否是我们刚才在pig 里的处理结果。
我们还可以使用pig对处理结果进行排序
E = ORDER D BY group ;
DUMP E ;
Pig 还有很多用法,具体可以参看官方文档。