`
MyEyeOfJava
  • 浏览: 1157270 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7af2d6ca-4fe1-3e9a-be85-3f65f7120bd0
测试开发
浏览量:71352
533896eb-dd7b-3cde-b4d3-cc1ce02c1c14
晨记
浏览量:0
社区版块
存档分类
最新评论

[Hadoop]转载-Pig的简单介绍

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

前提条件:

Linux/Unix系统,或带有Cygwin的Windows操作系统,我是用的是Ubuntu 8.04;
Hadoop 0.20.X
JDK 1.6或更高
Ant 1.7(可选,如果想自己编译Pig的话则需要)
JUnit 4.5(可选,如果自己想运行单元测试的话则需要)
Pig的安装

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已经正确安装完毕。

Pig的运行模式

1.本地模式
  Pig运行于本地模式,只涉及到单独的一台计算机。
2.MapReduce模式
  Pig运行于MapReduce模式,需要能访问一个Hadoop集群,并且需要装上HDFS。

Pig的调用方式

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

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

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

view plaincopy
A = load 'passwd' using PigStorage(':');  
B = foreach A generate $0 as id;  
dump B;  
store B into ‘id.out’;  


  local模式的java文件:Idlocal.java

view plaincopy
import java.io.IOException;  
import org.apache.pig.PigServer;  
public class idlocal{  
public static void main(String[] args) {  
try {  
    PigServer pigServer = new PigServer("local");  
    runIdQuery(pigServer, "passwd");  
    }  
    catch(Exception e) {  
    }  
 }  
public static void runIdQuery(PigServer pigServer, String inputFile) throws IOException {  
    pigServer.registerQuery("A = load '" + inputFile + "' using PigStorage(':');");  
    pigServer.registerQuery("B = foreach A generate $0 as id;");  
    pigServer.store("B", "id.out");  
 }  
}  


  mapreduce模式的java文件:Idmapreduce.java

view plaincopy
import java.io.IOException;  
import org.apache.pig.PigServer;  
public class idmapreduce{  
   public static void main(String[] args) {  
   try {  
     PigServer pigServer = new PigServer("mapreduce");  
     runIdQuery(pigServer, "passwd");  
   }  
   catch(Exception e) {  
   }  
}  
public static void runIdQuery(PigServer pigServer, String inputFile) throws IOException {  
   pigServer.registerQuery("A = load '" + inputFile + "' using PigStorage(':');");  
   pigServer.registerQuery("B = foreach A generate $0 as id;");  
   pigServer.store("B", "idout");  
   }  
}  


  两个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如不在当前目录,则要指明其全路径。

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文件夹则需要给出绝对路径。

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

3.嵌入式方式

  嵌入式方式与运行于运行普通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/article/details/5205999
分享到:
评论

相关推荐

    hadoop最新版本3.1.1全量jar包

    hadoop-annotations-3.1.1.jar hadoop-common-3.1.1.jar hadoop-mapreduce-client-core-3.1.1.jar hadoop-yarn-api-3.1.1.jar hadoop-auth-3.1.1.jar hadoop-hdfs-3.1.1.jar hadoop-mapreduce-client-hs-3.1.1.jar ...

    hadoop-eclipse-plugin1.2.1 and hadoop-eclipse-plugin2.8.0

    本文将详细介绍这两个版本的Hadoop Eclipse Plugin——1.2.1和2.8.0。 首先,Hadoop-Eclipse-Plugin 1.2.1是针对较早期的Hadoop版本设计的。这个版本的插件支持Hadoop 1.x系列,适配的是Hadoop MapReduce的旧版API...

    hbase-hadoop2-compat-1.2.12-API文档-中文版.zip

    赠送jar包:hbase-hadoop2-compat-1.2.12.jar; 赠送原API文档:hbase-hadoop2-compat-1.2.12-javadoc.jar; 赠送源代码:hbase-hadoop2-compat-1.2.12-sources.jar; 赠送Maven依赖信息文件:hbase-hadoop2-compat-...

    hadoop插件apache-hadoop-3.1.0-winutils-master.zip

    Apache Hadoop是一个开源框架,主要用于分布式存储和计算大数据集。Hadoop 3.1.0是这个框架的一个重要版本,提供了许多性能优化和新特性。在Windows环境下安装和使用Hadoop通常比在Linux上更为复杂,因为Hadoop最初...

    Apache Hadoop---Pig.docx

    Apache Hadoop 中的 Pig 是一个强大的分布式数据分析引擎,专门设计用于处理大规模数据集。Pig 构建在 Hadoop 平台上,通过提供一个名为 Pig Latin 的高级抽象语言,简化了在 Hadoop 上进行数据分析的过程。Pig ...

    hadoop-yarn-client-2.6.5-API文档-中文版.zip

    赠送jar包:hadoop-yarn-client-2.6.5.jar; 赠送原API文档:hadoop-yarn-client-2.6.5-javadoc.jar; 赠送源代码:hadoop-yarn-client-2.6.5-sources.jar; 赠送Maven依赖信息文件:hadoop-yarn-client-2.6.5.pom;...

    hadoop-mapreduce-client-jobclient-2.6.5-API文档-中文版.zip

    赠送jar包:hadoop-mapreduce-client-jobclient-2.6.5.jar; 赠送原API文档:hadoop-mapreduce-client-jobclient-2.6.5-javadoc.jar; 赠送源代码:hadoop-mapreduce-client-jobclient-2.6.5-sources.jar; 赠送...

    hadoop-eclipse-plugin-3.1.1.tar.gz

    Hadoop-Eclipse-Plugin-3.1.1是一款专为Eclipse集成开发环境设计的插件,用于方便地在Hadoop分布式文件系统(HDFS)上进行开发和调试MapReduce程序。这款插件是Hadoop生态系统的组成部分,它使得Java开发者能够更加...

    hadoop-auth-2.5.1-API文档-中文版.zip

    赠送jar包:hadoop-auth-2.5.1.jar; 赠送原API文档:hadoop-auth-2.5.1-javadoc.jar; 赠送源代码:hadoop-auth-2.5.1-sources.jar; 赠送Maven依赖信息文件:hadoop-auth-2.5.1.pom; 包含翻译后的API文档:hadoop...

    hadoop-eclipse-plugin-3.3.1.jar

    Ubuntu虚拟机HADOOP集群搭建eclipse环境 hadoop-eclipse-plugin-3.3.1.jar

    hadoop-eclipse-plugin-2.7.3和2.7.7

    hadoop-eclipse-plugin-2.7.3和2.7.7的jar包 hadoop-eclipse-plugin-2.7.3和2.7.7的jar包 hadoop-eclipse-plugin-2.7.3和2.7.7的jar包 hadoop-eclipse-plugin-2.7.3和2.7.7的jar包

    hadoop-eclipse-plugin-2.10.0.jar

    Eclipse集成Hadoop2.10.0的插件,使用`ant`对hadoop的jar包进行打包并适应Eclipse加载,所以参数里有hadoop和eclipse的目录. 必须注意对于不同的hadoop版本,` HADDOP_INSTALL_PATH/share/hadoop/common/lib`下的jar包...

    hadoop-common-2.6.0-bin-master.zip

    Hadoop是大数据处理领域的一个关键框架,它由Apache软件基金会维护,主要负责分布式存储和计算。`hadoop-common-2.6.0-bin-master.zip` 是一个针对Hadoop 2.6.0版本的压缩包,特别适用于在Windows环境下进行本地开发...

    flink-shaded-hadoop-3-uber-3.1.1.7.1.1.0-565-9.0.jar.tar.gz

    《Flink与Hadoop3.x兼容性解析》 在大数据处理领域,Apache Flink和Apache Hadoop是两个不可或缺的关键组件。Flink以其低延迟、高吞吐量的流处理能力而受到广泛赞誉,而Hadoop则以其分布式存储和计算框架闻名。然而...

    hadoop3.3.0-winutils所有bin文件

    Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它允许在大规模集群上处理海量数据。Hadoop 3.3.0是该框架的一个版本,它带来了许多改进和新特性,旨在提升性能、稳定性和可扩展性。WinUtils是Hadoop在...

    flink-1.0.3-bin-hadoop27-scala_2

    3. **Hadoop 2.7兼容性**:Hadoop是大数据存储和处理的基础平台,Flink的Hadoop 2.7兼容性意味着它可以无缝集成到Hadoop生态系统中,利用HDFS进行数据存储,并能与其他Hadoop组件(如Hive、Pig等)协同工作。...

    apache-hadoop-3.1.3-winutils-master.zip

    这些命令通过Hadoop的shell界面提供,使得在Windows上与远程HDFS集群的交互变得简单。 5. **安全性与认证**: 在Hadoop 3.1.3中,安全性是重要的考量。如果HDFS集群启用了Kerberos认证,客户端也需要相应的配置,...

    hadoop-eclipse-plugin三个版本的插件都在这里了。

    hadoop-eclipse-plugin-2.7.4.jar和hadoop-eclipse-plugin-2.7.3.jar还有hadoop-eclipse-plugin-2.6.0.jar的插件都在这打包了,都可以用。

    好用hadoop-eclipse-plugin-1.2.1

    hadoop-eclipse-plugin-1.2.1hadoop-eclipse-plugin-1.2.1hadoop-eclipse-plugin-1.2.1hadoop-eclipse-plugin-1.2.1

    flink-shaded-hadoop-2-uber-2.7.5-10.0.jar.zip

    《Flink Shaded Hadoop 2 Uber Jar:深入解析与应用》 Apache Flink 是一个流行的开源大数据处理框架,而 `flink-shaded-hadoop-2-uber-2.7.5-10.0.jar.zip` 文件是针对 Flink 优化的一个特殊版本的 Hadoop 库。这...

Global site tag (gtag.js) - Google Analytics