[Hadoop]转载-Pig的简单介绍
hadoop 简单 介绍 转载 pig
2023-09-14 08:56:50 时间
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
local模式的java文件:Idlocal.java
mapreduce模式的java文件:Idmapreduce.java
两个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:pig 安装及入门示例 pig是hadoop的一个子项目,用于简化MapReduce的开发工作,可以用更人性化的脚本方式分析数据。 a) 下载 从官网http://pig.apache.org下载最新版本(目前是0.14.0版本),最新版本可以兼容hadop 0.x /1.x / 2.x版本,直接解压到某个目录即可。
初接触Hadoop技术的朋友肯定会对它体系下寄生的个个开源项目糊涂了,我敢保证Hive,Pig,HBase这些开源技术会把你搞的有些糊涂,不要紧糊涂的不止你一个,如某个菜鸟的帖子的疑问,when to use Hbase and when to use Hive?....请教了^_
前提条件:
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:pig 安装及入门示例 pig是hadoop的一个子项目,用于简化MapReduce的开发工作,可以用更人性化的脚本方式分析数据。 a) 下载 从官网http://pig.apache.org下载最新版本(目前是0.14.0版本),最新版本可以兼容hadop 0.x /1.x / 2.x版本,直接解压到某个目录即可。
初接触Hadoop技术的朋友肯定会对它体系下寄生的个个开源项目糊涂了,我敢保证Hive,Pig,HBase这些开源技术会把你搞的有些糊涂,不要紧糊涂的不止你一个,如某个菜鸟的帖子的疑问,when to use Hbase and when to use Hive?....请教了^_
相关文章
- 试述Hadoop的HDFS及其组成_hadoop命令和hdfs命令区别
- hadoop单机部署
- hadoop+spark+zookeeper+hive的大数据分布式集群搭建
- Hadoop实战_hadoop 项目实战
- Spark和Hadoop的区别和比较[通俗易懂]
- 一文搞懂hadoop的metrics
- 大数据Hadoop|MapRedece|Yarn
- Hadoop集群配置(最全面总结)详解大数据
- hadoop集群namenode同时挂datanode详解大数据
- spark和hadoop的区别详解大数据
- 了解Hadoop体系的强大工具组合详解大数据
- Hadoop 7、MapReduce执行环境配置详解大数据
- Hadoop 3.x 新特性剖析系列2详解大数据
- Hadoop项目实战-用户行为分析之应用概述(二)详解大数据
- Linux下快速启动Hadoop集群(linux启动hadoop)
- Redis和Hadoop的应用与实现(redis hadoop)
- linux下搭建hadoop环境步骤分享