Pig安装与部署

什么是Pig?

Pig是一种数据流语言和运行环境,常用于检索和分析数据量较大的数据集。Pig包括两部分:一是用于描述数据流的语言,称为Pig Latin;二是用于运行Pig Latin程序的执行环境。

Pig与Hive的区别?

Pig与Hive作为一种高级数据语言,均运行于HDFS之上,是hadoop上层的衍生架构,用于简化hadoop任务,并对MapReduce进行一个更高层次的封装。Pig与Hive的区别如下:

1、Pig是一种面向过程的数据流语言;Hive是一种数据仓库语言,并提供了完整的sql查询功能。

2、Pig更轻量级,执行效率更快,适用于实时分析;Hive适用于离线数据分析。

3、Hive查询语言为Hql,支持分区;Pig查询语言为Pig Latin,不支持分区。

4、Hive支持JDBC/ODBC;Pig不支持JDBC/ODBC。

5、Pig适用于半结构化数据(如:日志文件);Hive适用于结构化数据。

Pig 有两种运行模式:
Local 模式:Pig 运行于 Local 模式,只涉及到单独的一台计算机
MapReduce 模式:Pig 运行于 MapReduce 模式,需要能访问一个 Hadoop 集群,并且需要装上 HDFS

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

一、安装Pig(前提已经启动Hadoop)

wgat http://archive.apache.org/dist/pig/pig-0.17.0/pig-0.17.0.tar.gz   #下载

tar -zxvf pig-0.15.0.tar.gz    #解压

二、 部署Pig

设置环境变量

vim /etc/profile

export PIG_HOME=/soft/pig
export PATH=$PIG_HOME/bin

修改完成后,我们输入以下命令激活我们修改的环境变量

source /etc/profile

pig -version    # 激活后就可以查看到我们的版本号

 

 

 三、运行

Local 模式

本地运行模式下,Pig运行在单个JVM中,访问本地文件系统,该模式用于测试或处理小规模数据集。

pig -x local

运行机制

(1) Grunt Shell 方式

Grunt Shell方式Grunt Shell和Windows中的DOS窗口非常类似,在这里用户可以一条一条地输入命令对数据进行操作,我们来简单的读一个文件,启动命令如下所示。

a = load '/root/test/student.txt' using PigStorage(':');
dump a ;

查看我们读取的数据

 

 

 

(2)脚本文件

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

test.pig 脚本内容如下

pig -x local /root/test/test.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 ”文件,然后用户可以通过如下命令调用执行此文件。

 

MapReduce 模式

在MapReduce运行模式下,Pig访问HDFS,并将查询翻译为MapReduce任务提交到Hadoop集群中进行处理。

需要我们将文件上传至HDFS,在HDFS上创建一个input目录并将数据上传

与Local模式相同

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值