zoukankan      html  css  js  c++  java
  • [hadoop系列]Pig的安装和简单演示样例

      inkfish原创,请勿商业性质转载,转载请注明来源(http://blog.csdn.net/inkfish )。(来源:http://blog.csdn.net/inkfish)

      Pig是Yahoo!捐献给Apache的一个项目,眼下还在Apache孵化器(incubator)阶段,眼下版本号是v0.5.0。Pig是一个基于Hadoop的大规模数据分析平台,它提供的SQL-like语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。Pig为复杂的海量数据并行计算提供了一个简易的操作和编程接口。本文介绍了Pig的安装及简单演示样例的执行,主要參考/翻译自官方文档的Pig Setup(来源:http://blog.csdn.net/inkfish)

    前提条件: (来源:http://blog.csdn.net/inkfish)

    • Linux/Unix系统,或带有Cygwin的Windows操作系统,我是用的是Ubuntu 8.04;
    • Hadoop 0.20.X
    • JDK 1.6或更高
    • Ant 1.7(可选,假设想自己编译Pig的话则须要)
    • JUnit 4.5(可选,假设自己想执行单元測试的话则须要)

    Pig的安装 (来源:http://blog.csdn.net/inkfish)

    1.下载Pig
      能够去Pig的官方主页下载最新的Pig,在写本篇文章时,最新版本号是Pig 0.5.0
    2.解压缩
      $ tar -xvf pig-0.5.0.tar.gz
      我一般喜欢把pig装在/opt/hadoop/pig-0.5.0文件夹下
    3.环境变量设置
      为了便于Pig以后的升级,我创建了一个软链接,环境变量指向软链接的文件夹,而软链接指向最新的Pig版本号。
      $ ln -s /opt/hadoop/pig-0.5.0 /opt/hadoop/pig
      编辑/etc/enviroment,在PATH增加Pig的bin子文件夹路径(也能够改动~/.bashrc或~/.profile)。
    4.验证安装完毕
      又一次进入终端,键入env命令,应该能看到PATH已经生效。键入pig -help命令,则出现帮助信息,代表Pig已经正确安装完成。(来源:http://blog.csdn.net/inkfish)

    Pig的执行模式 (来源:http://blog.csdn.net/inkfish)

    1.本地模式
      Pig执行于本地模式,仅仅涉及到单独的一台计算机。
    2.MapReduce模式
      Pig执行于MapReduce模式,须要能訪问一个Hadoop集群,而且须要装上HDFS。

    Pig的调用方式 (来源:http://blog.csdn.net/inkfish)

    • Grunt shell方式:通过交互的方式,输入命令运行任务;
    • Pig script方式:通过script脚本的方式来执行任务;
    • 嵌入式方式:嵌入java源码中,通过java调用来执行任务。

    Pig的演示样例代码 (来源:http://blog.csdn.net/inkfish)

      以下就分别介绍这三种不同的调用方式,首先,先展示一下演示样例须要用到的源码,这部分源码与官方文档中的一样,但有例如以下改动:

    • 修正了官方文档中一个错误,即id.pig最后一行id.out两側的全角单引號改为半角单引號;
    • 2.修正了官方文档中一个错误,即idmapreduce.java的runIdQuery方法第一行末尾少一个分号;
    • 3.依照Java常见的命名规范,类名首字母大写。

      script文件:id.pig(来源:http://blog.csdn.net/inkfish)

      local模式的java文件:Idlocal.java(来源:http://blog.csdn.net/inkfish)

      mapreduce模式的java文件:Idmapreduce.java(来源:http://blog.csdn.net/inkfish)

      两个java类须要进行编译,编译命令:
        javac -cp .:/opt/hadoop/pig/pig-0.5.0-core.jar Idlocal.java
        javac -cp .:/opt/hadoop/pig/pig-0.5.0-core.jar Idmapreduce.java

      当中pig-0.5.0-core.jar如不在当前文件夹,则要指明其全路径。(来源:http://blog.csdn.net/inkfish)

    1.Grunt shell方式
      Grunt shell方式首先用pig命令启动,pig命令能够加參数“-x local”代表本地模式,或“-x mapreduce”代表mapreduce模式,默认mapreduce模式。
        $ pig -x local
        $ pig
        $ pig -x mapreduce

      按行输入命令:
        grunt> A = load 'passwd' using PigStorage(':');
        grunt> B = foreach A generate $0 as id;
        grunt> dump B;
        grunt> store B into 'out';

      当中,“dump B”表示在屏幕中显示结果,“store B into 'out'”表示把结果输出到out文件/目录中。在local模式中,out文件写入到当前目录;mapreduce中,out目录则须要给出绝对路径。 (来源:http://blog.csdn.net/inkfish)

    2.Pig script方式
      script方式中,用pig命令启动,后面带要执行的.pig文件就可以,如:
        $ pig -x local id.pig
        $ pig id.pig
        $ pig -x mapreduce id.pig


    (来源:http://blog.csdn.net/inkfish)

    3.嵌入式方式(来源:http://blog.csdn.net/inkfish)

      嵌入式方式与执行于执行普通java类方式没有不论什么不同,如:
        java -cp .:/opt/hadoop/pig/pig-0.5.0-core.jar Idmapreduce
        java -cp .:/opt/hadoop/pig/pig-0.5.0-core.jar Idlocal
    (来源:http://blog.csdn.net/inkfish)

  • 相关阅读:
    SQL Server 阻止了对组件 'Ole Automation Procedures' 的 过程'sys.sp_OACreate' 的访问
    谷歌浏览器扩展程序manifest.json参数详解
    获取天气api
    UVA 10385 Duathlon
    UVA 10668 Expanding Rods
    UVALIVE 3891 The Teacher's Side of Math
    UVA 11149 Power of Matrix
    UVA 10655 Contemplation! Algebra
    UVA 11210 Chinese Mahjong
    UVA 11384 Help is needed for Dexter
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4358163.html
Copyright © 2011-2022 走看看