• Hadoop第8周练习—Pig部署及统计访问日志例子


    1    运行环境说明... 3

    1.1     硬软件环境... 3

    1.2     机器网络环境... 3

    2    书面作业0:搭建Pig环境... 3

    2.1     Pig介绍... 3

    2.2     部署过程... 4

    2.2.1   下载Pig. 4

    2.2.2   上传Pig. 4

    2.2.3   解压缩... 5

    2.2.4   设置环境变量... 6

    2.2.5   验证安装完成... 6

    3    书面作业1:计算每个IP点击次数... 7

    3.1     书面作业1内容... 7

    3.2     程序代码... 7

    3.3     准备数据... 7

    3.4     实现过程... 8

    3.4.1   输入代码... 8

    3.4.2   运行过程... 8

    3.4.3   运行结果... 9

     

    1    运行环境说明

    1.1     硬软件环境

    l  主机操作系统:Windows 64 bit,双核4线程,主频2.2G6G内存

    l  虚拟软件:VMware® Workstation 9.0.0 build-812388

    l  虚拟机操作系统:CentOS 64位,单核,1G内存

    l  JDK1.7.0_55 64 bit

    l  Hadoop1.1.2

    1.2     机器网络环境

    集群包含三个节点:1namenode2datanode,其中节点之间可以相互ping通。节点IP地址和主机名分布如下:

    序号

    IP地址

    机器名

    类型

    用户名

    运行进程

    1

    10.88.147.221

    hadoop1

    名称节点

    hadoop

    NNSNNJobTracer

    2

    10.88.147.222

    hadoop2

    数据节点

    hadoop

    DNTaskTracer

    3

    10.88.147.223

    hadoop3

    数据节点

    hadoop

    DNTaskTracer

    所有节点均是CentOS6.5 64bit系统,防火墙均禁用,所有节点上均创建了一个hadoop用户,用户主目录是/usr/hadoop。所有节点上均创建了一个目录/usr/local/hadoop,并且拥有者是hadoop用户。

    2    书面作业0:搭建Pig环境

    2.1     Pig介绍

    Pigyahoo捐献给apache的一个项目,使用SQL-like语言,是在MapReduce上构建的一种高级查询语言,把一些运算编译进MapReduce模型的MapReduce中。Pig 有两种运行模式: Local 模式和 MapReduce 模式

    l  本地模式:Pig运行于本地模式,只涉及到单独的一台计算机

    l  MapReduce模式:Pig运行于MapReduce模式,需要能访问一个Hadoop集群,并且需要装上HDFS

    Pig的调用方式:

    l  Grunt shell方式:通过交互的方式,输入命令执行任务;

    l  Pig script方式:通过script脚本的方式来运行任务;

    l  嵌入式方式:嵌入java源代码中,通过java调用来运行任务。

    2.2     部署过程

    2.2.1下载Pig

    Apache下载最新的Pig软件包,点击下载会推荐最快的镜像站点,以下为下载地址:http://mirror.bit.edu.cn/apache/pig/

    clip_image002

    2.2.2上传Pig

    把下载的pig-0.13.0.tar.gz安装包,使用SSH Secure File Transfer工具(第12作业周2.1.3.1介绍)上传到/home/hadoop/Downloads 目录下

    clip_image004

    2.2.3解压缩

    Downloads目中将pig解压缩

    cd /home/hadoop/Downloads/

    tar -xzvf pig-0.13.0.tar.gz

    clip_image006

    pig-0.13.0目录移到/usr/local目录下

    sudo mv pig-0.13.0 /usr/local

    cd /usr/local

    ls /usr/local

    clip_image008

    2.2.4设置环境变量

    使用如下命令编辑/etc/profile文件:

    sudo vi /etc/profile

    clip_image010

    设置pigclass路径和在path加入pig的路径,其中PIG_CLASSPATH参数是设置pigMapReduce工作模式:

    export PIG_HOME=/usr/local/pig-0.13.0

    export PIG_CLASSPATH=/usr/local/hadoop-1.1.2/conf

    export PATH=$PATH:/usr/local/hadoop-1.1.2/bin:$PIG_HOME/bin

    clip_image012

    编译配置文件/etc/profile,并确认生效

    source /etc/profile

    2.2.5验证安装完成

    重新登录终端,确保hadoop集群启动,键入pig命令,应该能看到pig连接到hadoop集群的信息并且进入了grunt shell命令行模式:

    clip_image014

    3    书面作业1:计算每个IP点击次数

    3.1     书面作业1内容

    在课程资源下载本周的作业素材access_log.rar,是一段dataguru的网站访问日志 请大家使用pig处理这个日志,计算出每个ip的点击次数,例如 123.24.56.57 13 24.53.23.123 7 34.56.78.120 20 .... 等等

    3.2     程序代码

    // 加载HDFS中访问日志,使用空格进行分割,只加载ip

    records = LOAD 'hdfs://hadoop1:9000/usr/hadoop/in/access_log.txt' USING PigStorage(' ') AS (ip:chararray);

     

    // 按照ip进行分组,统计每个ip点击数

    records_b = GROUP records BY ip;

    records_c = FOREACH records_b GENERATE group,COUNT(records) AS click;

     

    // 按照点击数排序,保留点击数前10个的ip数据

    records_d = ORDER records_c by click DESC;

    top10 = LIMIT records_d 10;

     

    // 把生成的数据保存到HDFSweek8目录中

    STORE top10 INTO 'hdfs://hadoop1:9000/usr/hadoop/week8';

    3.3     准备数据

    使用SSH工具(参见第122.1.3.1Linux文件传输工具所描述)把提供的测试数据access_log.txt上传到本地目录/usr/local/hadoop-1.1.2/input中,然后调用hadoop上传本地文件命令把该文件传到/usr/hadoop/in目录中,如下图所示:

    clip_image016

    access_log.txt日志内容如下:

    clip_image018

    3.4     实现过程

    3.4.1输入代码

    进入pig shell 命令行模式:

    clip_image014[1]

    输入代码:

    clip_image020

    3.4.2运行过程

    在执行过程中在JobTracker页面观察运行情况,链接地址为:http://hadoop1:50030/jobtracker.jsp

    clip_image022

    点击查看具体作业信息

    clip_image024

    可以观察到本次任务分为4个作业,每个作业一次在上一次作业的结果上进行计算

    clip_image026

    clip_image028

    3.4.3运行结果

    通过以下命令查看最后的结果:

    hadoop fs -ls /usr/hadoop/week8

    hadoop fs -cat /usr/hadoop/week8/part-r-00000

    clip_image030

  • 相关阅读:
    【转】PHP操作MongoDB【NoSQL】
    web前端响应式
    CSS Hack
    ES6特性
    zepto.js使用前注意
    移动端 isScroll自定义实现
    严格模式use strict
    node.js和express.js安装和使用步骤 [windows]
    JSONP理解和使用
    require.js+backbone.js基本使用
  • 原文地址:https://www.cnblogs.com/shishanyuan/p/4200338.html
Copyright © 2020-2023  润新知