Pig
更新时间:2021-11-26
Pig简介
本文以分析Web日志统计每天的PV和UV为例,介绍如何在百度智能云平台使用Pig。
Pig是基于Hadoop的大规模数据分析平台,把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。Pig适用于大量的并行进程,因此可处理大规模数据集,而且Pig为复杂的海量数据并行计算提供了一个简单的操作和编程接口,便于写入和维护,可为实现不同的目的创建自己的进程。
Pig的数据类型,不仅支持包、元组和映射等高级概念,还支持简单的数据类型,如int、long、float、double、chararray和bytearray。
程序准备
您可以直接使用样例程序。
lines = LOAD '${INPUT}';
fields = FOREACH lines GENERATE FLATTEN(REGEX_EXTRACT_ALL($0, '(\\S+)\\s+-\\s+\\[(.*?)\\]\\s+\\"(.*)\\"\\s+(\\d{3})\\s+(.*)\\s+\\"(.*)\\"\\s+\\"(.*)\\"\\s+(.*)\\s+\\"(.*)\\"\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)'));
access_logs = FOREACH fields GENERATE $0 AS remote_ip, ToString(ToDate($1, 'dd/MMM/yyyy:HH:mm:ss Z'), 'dd/MMM/yyyy') AS date;
groups = GROUP access_logs BY date;
pv = FOREACH groups GENERATE group, COUNT(access_logs);
STORE pv INTO '${OUTPUT}';
创建集群
- 准备数据,请参考数据准备。
- 准备百度智能云环境。
-
登录控制台,选择“产品服务->MapReduce BMR”,点击“创建集群”,进入集群创建页,并做如下配置:
- 设置集群名称
- 设置管理员密码
- 关闭日志开关
- 选择镜像版本“BMR 1.0.0(hadoop 2.7)”
- 选择内置模板“hadoop”。
- 请保持集群的其他默认配置不变,点击“完成”可在集群列表页可查看已创建的集群,当集群状态由“初始化中”变为“空闲中”时,集群创建成功。
运行Pig作业
- 在“产品服务>MapReduce>MapReduce-作业列表”页中,点击“创建作业”,进入创建作业页。
-
配置Pig作业参数,具体如下:
- 作业类型:选择“Pig作业”。
- 作业名称:输入作业名称,长度不可超过255个字符。
- bos脚本地址:可输入样例程序路径
bos://bmr-public-data/apps/pig/AccessLogAnalyzer.pig
。 - bos输入地址:可输入样例数据路径
bos://bmr-public-data/logs/accesslog-1k.log
- bos输出地址:输入
bos://{yourbucket}/output
,该路径必须具有写权限且路径中所指定的目录不能在bos上存在,例如,输出路径为bos://test/sqooptest,则sqooptest目录在bos上必须不存在。 - 失败后操作:继续。
- 应用程序参数:无。
- 在“集群适配”区,选择适配的集群。
- 点击“完成”,则作业创建完成。运行中的作业状态会由“等待中”更新为“运行中”,当作业运行完毕后状态会更新为“已完成”。
查看结果
可以去bos://{yourbukcet}/output
路径下查看输出。如果使用系统提供的输入数据和程序,可以看到如下结果:
03/Oct/2015 139
04/Oct/2015 375
05/Oct/2015 372
06/Oct/2015 114