Hadoop实战之路——第五章 Pig的使用

5.1 Apache Pig介绍

      Pig是Apache基金会的一个项目,它是一个大型数据集分析的平台,使用过MapReduce的程序员都知道,面对复杂的数据集常常需要编写多个MapReduce过程方能达到目的。Pig正是为了解决这个问题而产生的,它包括两个部分:

     *Pig Latin:描述数据流的文本语言;

    *运行Pig Latin程序的执行环境:产生MapReduce程序的编译器。

    Pig具有三个特性:

    (1)易编程。Pig Latin程序由一系列的“操作”或“变换”构成,实际上通过“操作”将MapRecude程序变成数据流,使得实现简单的和并行要求高的数据分析任务变得非常容易,在它所提供的Pig Latin控制台上,可以用几行Pig Latin代码轻松完成TB级的数据集处理任务。

     (2)自动优化。系统会对编写的Pig Latin代码自动进行优化,程序员就可以省去优化过程,不必关心效率问题,将大量的时间专注与分析语义方面。

     (3)扩展性好。程序员可以按照自己的需求编写自定义函数。其载入(load)、存储(store)、过滤(filter)、连接(join)过程均可定制。

5.2 Pig的安装

5.2.1 Pig的下载

     Apache提供的Pig最新版本是0.12,它需要Hadoop集群的支持。  本教程使用的是0.12,下载地址为:http://mirror.esocc.com/apache/pig/stable/pig-0.12.1.tar.gz。

     #wget http://mirror.esocc.com/apache/pig/stable/pig-0.12.1.tar.gz

     将所下载的包解压,命令:

    #tar -xvf pig-*-*-*.tar.gz

    可以解压到您指定的位置,这里笔者指定的位置为:/usr/local/hadoop/pig。

5.2.2 Pig的配置

   配置Pig的环境变量,命令:

   #vi /etc/prifile

   插入一行:

   export PIG_HOME=Pig的安装路径

   如:export PIG_HOME=/usr/local/hadoop/pig

   export PATH=$PIG_HOME/bin:$PIG_HOME/conf:$PATH

   注意保持原来的Hadoop、JAVA的相关配置。

  

   使用source命令在当前bash环境下读取并执行profile中的命令,如下:

   source /etc/profile

   验证配置:

   #pig -help

  

   出现上图所示,表示配置成功。

5.3 Pig运行模式

    Pig有两种运行模式:Local模式和MapReduce模式。Local模式只能访问本地系统文件,一般用于处理小规模的数据集,不需要Hadoop集群环境的支持。MapReduce模式运行于Hadoop集群环境上,Pig将Pig Latin程序编译为MapReduce作业执行。Pig程序的运行由三种方法:脚本文件、Grunt Shell和程序嵌入式。这三种方法均适用于Local模式和MapReduce模式,在Local模式与MapReduce模式下的执行几乎一样,只需说明采用的模式就行。

5.3.1 Local模式

    (1)Grunt Shell

       命令:$ pig -x local

   

   (2)脚本文件

     命令:$pig -x local xxx.pig

     xxx.pig为对应的Pig脚本文件。这里要指定绝对路径为佳。

    (3)程序嵌入式

      将Pig命令嵌入到其他高级语言所写的文件中,直接运行程序,和原来运行普通程序的方式完全一样。如:

      $javac -cp xxx.jar:. local

5.3.2 MapReduce模式

     在MapReduce模式下,Pig会将查询翻译为相应的MapReduce作业,接着在Hadoop集群上运行,其本质还是MapReduce作业。所以,如果没有设置HADOOP_HOME环境变量,需要先设置,在/etc/profile中加入:

     export HADOOP_HOME=/usr/local/hadoop1

    验证:

    $pig -x mapreduce

   

   出现上面的提示表示配置成功。

  (1)Grunt Shell

       命令:$ pig -x mapreduce

      示例:有一段网站的访问日志,用Pig计算出各IP的访问次数。

      数据下载地址:http://download.csdn.net/detail/xiangchengguan/7567759

    Pig shell:

    

    Result:

   

    如果要提取点击次数最高的前3个IP,则进行如下操作:

  

  

   (2)脚本文件

     命令:$pig -x mapreduce xxx.pig

     xxx.pig为对应的Pig脚本文件。这里要指定绝对路径为佳。

    (3)程序嵌入式

      将Pig命令嵌入到其他高级语言所写的文件中,直接运行程序,和原来运行普通程序的方式完全一样。如:

      $javac -cp xxx.jar:. mapreduce

大笑 老象提示:

     退出Pig的命令:quit

5.4 Pig Latin编辑器

     对于Pig程序员来说,智能的编译器能够起到事半功倍的效果,PigPen就提供了一个Eclipse插件,其包含了Pig脚本编译器和示例生成器。具体请参阅http://wiki.apache.org/pig/PigPen


    

      

    

    

  



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值