Pig只兼容相对应的版本:具体查看如下URL:http://pig.apache.org/releases.html
一:Pig包含两部分
1:用于描述数据流的语言 Pig Latin
2:用于运行Pig Latin程序的执行环境当前有两个
.单JVM中的本地执行环境
.Hadoop集群上的分布式执行环境
二:Pig 安装
wget http://mirrors.cnnic.cn/apache/pig/pig-0.11.1/pig-0.11.1.tar.gz
tar zvfx pig-0.11.1.tar.gz
mv pig-0.11.1 /usr/local/
cat << EOF >> /etc/profile
#set pig environment
export PIG_INSTALL=/usr/local/pig-0.11.1
export PATH=\$PATH:\$PIG_INSTALL/bin
EOF
source /etc/profile
三:执行类型
1:local mode
2:MapReduce mode
.local mode
在本地模式下 Pig运行在单个JVM中 访问本地文件系统 该模式适用Pig或处理小规模数据集
执行类似选择可以使用 -x or -exectype选项进行设置
[root@J-720-1-Hadoop-Master ~]# pig -x local
grunt>
Grunt是Pig的外壳程序
.MapReduce mode
#Pig指向到Hadoop集群配置
cat << EOF >> /etc/profile
#set pig to hadoop environment
export PIG_CLASSPATH=\$HADOOP_HOME/conf
EOF
四:三种执行Pig程序的方法 local and MapReduce mode 模式下都适用
1:脚本
Pig可以运行包含Pig命令的脚本文件如: pig script.pig 运行在本地script.pig中的命令
对于很短的脚本 可以通过-e选项直接在命令行中输入脚本字符串
2:Grunt
Grunt是运行Pig命令的交互式外壳环境 如果没有指明Pig要运行的文件 而且也没有使用-e选项
Pig就会运行Grunt 在Grunt环境中 也可以通过run和exec命令运行Pig脚本
3:嵌入式方法
也可以java中运行Pig程序 这和使用JDBC运行SQL程序很像
Pig语言中的应用:
LOAD 操作接受一个URL参数做为输入
AS子句设定了字段名称
DUMP操作来查看某个别名所对应关系的内容
DESCRIBE 操作查看一个关系的结构
#如下GROUP函数把records关系中的记录按照year字段分组
grouped_records =GROUP filtered_records BY year;
Pig Latin注释方法:
--表示单行注释 Pig Lat解释器会忽略从第一个减号开始到行尾的所有内容;
命令类型:
HadoopFilesystem
cat 打印一个文件或者多个文件内容
cd 改变当前目录
copyFromLocal 把一个本地文件或者目录复制到hadoop文件系统
copyToLocal 将一个文件或者目录从Hadoop文件系统复制到本地文件系统
cp 把一个文件或者目录复制到另一个文件或者目录
fs 访问hadoop文件系统外壳程序
ls 打印文件列表信息
mkdir 创建新目录
mv 将一个文件或者目录移动到另一个目录
pwd 打印当前工作目录
rm 删除一个文件或者目录
rmf 强制删除文件或者目录
HadoopMapReduce工具
kill 终止某个MapReduce作业
exec 在一个新的Grunt外壳程序中以批处理模式运行一个脚本
help 帮助信息
quit 退出解释器
run 在当前Grunt外壳程序中运行脚本
set 设置Pig选项 #set debug on;