Pig安装及本地模式实战

Pig是Apache的一个开源项目,用于简化MapReduce的开发,实质Pig将转化为MapReduce作业,使开发人员更多专注数据而不是执行的本质,是不懂java人员的福利。

Pig由以下两部分组成:

1、表达数据流的语言,成为Pig Latin。

2、运行Pig Latin程序的执行环境。目前有两种环境:在单个JVM本地执行和在HADOOP集群上分步执行

废话不多说,实战起来:

和Apache其他项目一样,安装Pig都很简单,在/etc/profile文件中设置环境变量。

#set pig environment
export PIG_HOME=/usr/local/hadoop/pig
export PATH=$PATH:$PIG_HOME/bin

执行source /etc/profile 使新加入的环境变量生效 。

下面的命令验证是否成功:

pig -version
pig -x local

由于是本地模式故在命令行输入pig -x local 将启动Grunt,即Pig交互式shell


使用Pig实现MapReduce的开发的统计单词个数,如下脚本:

words = load ‘count.txt‘ using PigStorage(‘ ‘) as (line); --以空格作为分隔符把内容分词读入
grpd = group words by line;     --以每个单词聚类,真实的是一个MapReduce的Map阶段
cntd = foreach grpd generate group, COUNT(words); -- 这里既上一步Map完成紧接着Reduce阶段进行统计
dump cntd;  --直接在终端打印结果便于查看命名为count_pig.pig。

我们直接运行:

pig -x local count_pig.pig

结果:前面是单词,后面是计数

(555,1)
(Hello,2)
(World,2)

一、Pig支持注释的,注释方式:

1、一种是SQL的注释方式,如上面的--, --行后边的内容都会忽略

2、另一种是Java中的注释方式, /* 注释内容 */ ,它的注释可以一行也可以跨行

二、pig的运行模式:

Pig 有两种运行模式:Local 模式和MapReduce 模式。当 Pig 在 Local 模式运行的时候, Pig 将只访问本地一台主机;当 Pig 在 MapReduce 模式运行的时候, Pig 将访问一个 Hadoop 集群和 HDFS 的安装位置。这时, Pig 将自动地对这个集群进行分配和回收。因为 Pig 系统可以自动地对 MapReduce 程序进行优化,所以当用户使用 Pig Latin 语言进行编程的时候,不必关心程序运行的效率, Pig 系统将会自动地对程序进行优化。这样能够大量节省用户编程的时间。

测试示例如下:

本地模式:pig -x local test.pig

MapReduce模式:pig test.pig(或者pig -x mapreduce test.pig,pig test.pig为其简写形式)

三、pig运行方式:

Pig 的 Local 模式和 MapReduce 模式都有三种运行方式,分别为:Grunt Shell 方式、脚本文件方式和嵌入式程序方式。下面我们将对其进行一一介绍。

1.Local 模式:

( 1 ) Grunt Shell 方式

用户使用 Grunt Shell 方式时,需要首先使用命令开启 Pig 的 Grunt Shell ,只需在Linux 终端中输入如下命令并执行即可:

$pig –x local

这样 Pig 将进入 Grunt Shell 的 Local 模式,如果直接输入“ $pig ”命令, Pig 将首先检测 Pig 的环境变量设置,然后进入相应的模式。如果没有设置 MapReduce 环

境变量, Pig 将直接进入 Local 模式。

Grunt Shell 和 Windows 中的 Dos 窗口非常类似,这里用户可以一条一条地输入命令对数据进行操作。

( 2 ) 脚本文件方式

使用脚本文件作为批处理作业来运行 Pig 命令,它实际上就是第一种运行方式中命令的集合,使用如下命令可以在本地模式下运行 Pig 脚本:

$pig –x local script.pig

其中,“ script.pig ”是对应的 Pig 脚本,用户在这里需要正确指定 Pig 脚本的位置,否则,系统将不能识别。例如, Pig 脚本放在“ /root/pigTmp ”目录下,那

么这里就要写成“ /root/pigTmp/script.pig ”。用户在使用的时候需要注意 Pig 给出的一些提示,充分利用这些能够帮助用户更好地使用 Pig 进行相关的操作。

( 3 ) 嵌入式程序方式

我们可以把 Pig 命令嵌入到主机语言中,并且运行这个嵌入式程序。和运行普通的Java 程序相同,这里需要书写特定的 Java 程序,并且将其编译生成对应的 class 文

件或 package 包,然后再调用 main 函数运行程序。用户可以使用下面的命令对 Java 源文件进行编译:

$javac -cp pig-*.*.*-core.jar local.java

这里“ pig-*.*.*-core.jar ”放在 Pig 安装目录下,“ local.java ”为用户编写的 java 源文件,并且“ pig-*.*.*-core.jar ”和“ local.java ”需要用户正确地指定相应的       位置。例如,我们的“ pig-*.*.*-core.jar ”文件放在“ /root/hadoop-0.20.2/ ”目录下,“ local.java ”文件放在“ /root/pigTmp ”目录下,所以这一条命令我们应       该写成:$javac -cp /root/hadoop-0.20.2/ pig- 0 . 20 . 2 -core.jar /root/pigTmp/ local.java当编译完成后, Java 会生成“ local.class ”文件,然后用户可以通过          如下命令调用执行此文件。

$ java -cp pig-*.*.*-core.jar:. Local

2.MapReduce 模式

(1 ) Grunt Shell 方式

用户在 Linux 终端下输入如下命令进入 Grunt Shell 的 MapReduce 模式:

$pig –x mapreduce

( 2 ) 脚本文件方式

用户可以使用如下命令在 MapReduce 模式下运行 Pig 脚本文件。

$pig –x mapreduce script.pig

(3 ) 嵌入式程序

和 Local 模式相同,在 MapReduce 模式下运行嵌入式程序同样需要经过编译和执行两个步骤。用户可以使用如下两条命令,完成相应的操作。

javac -cp pig-0.7.0-core.jar mapreduce.java

java -cp pig-0.7.0-core.jar:. mapreduce

Pig安装及本地模式实战,布布扣,bubuko.com

时间: 2024-10-25 23:31:30

Pig安装及本地模式实战的相关文章

Linux下的Hadoop安装(本地模式)

系统为CentOS 6.9,Hadoop版本2.8.3,虚拟机VMware Workstation 主要介绍Linux虚拟机安装.环境配置和Hadoop本地模式的安装.伪分布式和Windows下的安装将另作补充. 网络上关于Hadoop安装的教程非常多,这里主要是归纳出安装过程的简要步骤和可能碰到的问题. Linux环境安装 NAT Linux 设置网络 HOST 其他环境设置 Java环境配置 Hadoop本地模式安装 Linux环境安装 NAT Linux 设置网络 HOST 其他环境设置

Pig安装及简单使用(pig版本0.13.0,Hadoop版本2.5.0)

原文地址:http://www.linuxidc.com/Linux/2014-03/99055.htm 我们用MapReduce进行数据分析.当业务比较复杂的时候,使用MapReduce将会是一个很复杂的事情,比如你需要对数据进行很多预处理或转换,以便能够适应MapReduce的处理模式,另一方面,编写MapReduce程序,发布及运行作业都将是一个比较耗时的事情. Pig的出现很好的弥补了这一不足.Pig能够让你专心于数据及业务本身,而不是纠结于数据的格式转换以及MapReduce程序的编写

Pig安装与配置

---------------------------------- 一.前言 二.环境 三.配置 1.本地模式 2.MapReduce模式 四.测试 ---------------------------------- 一.前言 Pig是一个用来处理大规模数据集的平台,和Google的Sawzall类似,由Yahoo!贡献给Apache.MapReduce的查询矿街虽然主要是Map和Reduce两个函数,但是用户从编程写程序到在集群中部署.运行,仍然要花费不少时间.使用Pig可以简化MapRe

IntelliJ IDEA(Ultimate版本)的下载、安装和WordCount的初步使用(本地模式和集群模式)Ultimate

不多说,直接上干货! IntelliJ IDEA号称当前Java开发效率最高的IDE工具.IntelliJ IDEA有两个版本:社区版(Community)和旗舰版(Ultimate).社区版时免费的.开源的,但功能较少,旗舰版提供了较多的功能,是收费的,可以试用30天. 强烈推荐,新手刚入门,可以去用社区版,但是,立马还是用旗舰版,我可是走了弯路,当然,体会到其中的棘手还是很不错! IDEA Community(社区版)再谈之无奈之下还是去安装社区版 IntelliJ IDEA(Communi

Hive的三种安装方式(内嵌模式,本地模式远程模式)

一.安装模式介绍:     Hive官网上介绍了Hive的3种安装方式,分别对应不同的应用场景.     1.内嵌模式(元数据保村在内嵌的derby种,允许一个会话链接,尝试多个会话链接时会报错)     2.本地模式(本地安装mysql 替代derby存储元数据)     3.远程模式(远程安装mysql 替代derby存储元数据) 二.安装环境以及前提说明:     首先,Hive是依赖于hadoop系统的,因此在运行Hive之前需要保证已经搭建好hadoop集群环境.     本文中使用的

【node.js】本地模式安装express:'express' 不是内部或外部命令,也不是可运行的程序或批处理文件。

今天闲来无事想起了node.js,因此到网上下载了一个node.js的安装程序进行安装.其中: 安装程序:node-v0.11.13-x64.msi PC系统:Windows 7 自定义安装路径:D:\TOOLS\NodeJs 安装完成后,执行: D:\TOOLS\NodeJs>node -v v0.11.13 安装框架express,从网站上下载了一个安装文档,说安装express可分全局模式和本地模式,个人觉得全局模式就是默认的没什么意思,就选择本地模式进行安装,执行: D:\TOOLS\N

Hive本地模式安装及遇到的问题和解决方案

Apache Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行. 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析. Hive有三种运行模式: 1.内嵌模式:将元数据保存在本地内嵌的Derby数据库中,这得使用Hive最简单的方式,不过使用内嵌模式的话,缺点也比较明显,因为一个内嵌的D

Tachyon基本使用02-----Tachyon本地模式安装

一.配置系统环境 1.清除默认防火墙规则 # service iptables save iptables:将防火墙规则保存到 /etc/sysconfig/iptables:     [确定] 2.关闭Selinux # cat /etc/sysconfig/selinux |grep SELINUX|grep -v ^# SELINUX=disabled  SELINUXTYPE=targeted  # 3.配置ip地址 # cat /etc/sysconfig/network-script

IntelliJ IDEA的下载、安装和WordCount的初步使用(本地模式和集群模式)

我们知道,对于开发而言,IDE是有很多个选择的版本.如我们大部分人经常用的是如下. Eclipse *版本 Eclipse *下载 而我们知道,对于spark的scala开发啊,有为其专门设计的eclipse,Scala IDE for Eclipse Scala IDE for Eclipse的下载.安装和WordCount的初步使用(本地模式和集群模式) 这里,我们知道,spark的开发可以通过IntelliJ IDEA或者Scala IDE for Eclipse,包括来构建spark开发