java程序员的大数据之路(13):Pig入门

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/K_Ohaha/article/details/78706487

Pig简介

Pig为大型数据集的处理提供了更高层次的抽象。
Pig包括两部分:

  • 用于描述数据流的语言,称为Pig Latin。

  • 用于运行Pig Latin程序的执行环境。当前有两个环境:单JVM中的本地执行环境和Hadoop集群上的分布式执行环境。

Pig的安装

Pig的安装条件

Java环境对于Pig是必需的,如果想要Pig运行在MapReduce模式下,则还需要安装Hadoop。Hadoop的安装方法可以在我之前的文章中获取
java程序员的大数据之路(1):Hadoop安装

Pig的安装过程

我用的是pig0.17.0版本,可以在官网下载地址中下载http://www.apache.org/dyn/closer.cgi/pig。下载好后执行解压命令tar -zvxf pig-0.17.0.tar.gz
解压完之后,配置环境变量,在/etc/profile文件中添加以下代码

export PIG_HOME=/usr/local/pig/pig-0.17.0(替换成自己的目录)
export PATH=$PATH:$PIG_HOME/bin:$PIG_HOME/conf

保存退出后,要执行命令source /etc/profile 使环境变量生效。
输入 pig –help查看是否安装成功。

Pig的执行模式

Pig有两种执行模式:本地模式和MapReduce模式。

本地模式

在本地模式下,Pig运行单在个JVM中,访问本地文件系统。改模式只用于处理小规模数据集或使用Pig。执行命令pig -x local就能启动Grunt。Grunt是Pig的外壳程序(shell)

MapReduce模式

在MapReduce模式下,Pig将查询翻译为MapReduce作业,然后在Hadoop集群上运行。集群可以是伪分布的,也可以是全分布的。要使用MapReduce模式,首先要检查所安装的Pig是否与Hadoop版本兼容。Pig0.17对应于Hadoop2.x,可以通过设置HADOOP_HOME来指定Pig运行的Hadoop。如果不设置,Pig0.17默认运行Hadoop2.7.3。

Pig程序的运行

Pig程序有三种方法执行。

脚本

Pig可以运行包含Pig命令的脚本文件。对于很短的脚本,也可以使用-e选项直接在命令行中输入脚本字符串

Grunt

在Grunt环境中,可以通过run和exec命令运行Pig脚本

嵌入式方法

可以在Java中运行Pig程序。类似于使用JDBC运行SQL程序。

与数据库比较

Pig Latin和SQL看上去很像,但也有很多不同之处。相较而言,它们之间最大的不同就是Pig Latin是一种数据流编程语言,而SQL是描述型编程语言。RDBMS把数据存储在严格定义了模式的表内,Pig对它所处理的数据要求宽松的多,可以在运行时定义模式。几个支持在线和低延迟查询的特性是RDBMS有但Pig没有的。例如事务和索引。Pig不支持随机读和几十毫秒级的查询。也不支持对一小部分数据的随机写。所有的写都是批量的、流式的写操作。

猜你喜欢

转载自blog.csdn.net/K_Ohaha/article/details/78706487