百度MapReduce BMR

    Pig

    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}';

    创建集群

    1. 准备数据,请参考数据准备
    2. 准备百度智能云环境
    3. 登录控制台,选择“产品服务->百度MapReduce BMR”,点击“创建集群”,进入集群创建页,并做如下配置:

      • 设置集群名称
      • 设置管理员密码
      • 关闭日志开关
      • 选择镜像版本“BMR 1.0.0(hadoop 2.7)”
      • 选择内置模板“hadoop”。
    4. 请保持集群的其他默认配置不变,点击“完成”可在集群列表页可查看已创建的集群,当集群状态由“初始化中”变为“空闲中”时,集群创建成功。

    运行Pig作业

    1. 在“产品服务>MapReduce>百度MapReduce-作业列表”页中,点击“创建作业”,进入创建作业页。
    2. 配置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上必须不存在。
      • 失败后操作:继续。
      • 应用程序参数:无。
    3. 在“集群适配”区,选择适配的集群。
    4. 点击“完成”,则作业创建完成。运行中的作业状态会由“等待中”更新为“运行中”,当作业运行完毕后状态会更新为“已完成”。

    查看结果

    可以去bos://{yourbukcet}/output路径下查看输出。如果使用系统提供的输入数据和程序,可以看到如下结果:

    03/Oct/2015    139
    04/Oct/2015    375
    05/Oct/2015    372
    06/Oct/2015    114
    上一篇
    Sqoop
    下一篇
    Hue