Pig
Pig可以看做hadoop的客户端软件, 可以连接到hadoop集群进行数据分析工作
Pig方便不熟悉java的用户, 使用一种较为简便的类似于SQL的面向数据流的语言pig latin进行数据处理
Pig latin可以进行排序, 过滤, 求和, 分组, 关联等常用操作, 还可以自定义函数, 这是一种面向数据分析处理的轻量级脚本语言
Pig可以看作是pig latin到map-reduce的映射器
下载并解压pig安装包
http://mirror.bjtu.edu.cn/apache/pig/pig-0.13.0/
wget http://mirror.bjtu.edu.cn/apache/pig/pig-0.13.0/pig-0.13.0.tar.gz tar xf pig-0.13.0.tar.gz
.bash_profile
PATH=$PATH:/home/hadoop/pig-0.13.0/bin:$HOME/bin:/home/hadoop/hadoop-2.5.0/bin/ JAVA_HOME=/usr/java/jdk1.7.0_67/ PIG_CLASSPATH=/home/hadoop/etc/hadoop/ #指向hadoop配置文件,让pig可以找到要连接的集群 export PATH export JAVA_HOME
进入grunt shell
pig -x local pig
参考文档
http://pig.apache.org/docs/r0.13.0/
Pig的运行方法
脚本
Grunt
嵌入式
Grunt
自动补全机制
Autocomplete文件
Eclipse插件PigPen
常用命令
copyToLocal hadoopfile filename 将hadoop中的文件,copy到本地
Pig数据模型
Bag: 表
Tuple: 行, 记录
Field: 属性
Pig不要求同一个bag里面的各个Tupler有相同数量或相同的类型的field
Pig latin常用语句
LOAD: 指出载入数据的方法
FOREACH: 逐行扫描进行某种处理
FILTER: 过滤行
DUMP: 把结果显示到屏幕
STORE: 把结果显示到文件
pix -x local A = LOAD = '/home/hadoop/aa.txt' USING PigStorage('#') #使用#作为分隔符 AS (id,pw,em); #分为三个列 B = FOREACH a #循环A,取出em的列 GENERATE em; STORE B INFO '/home/hadoop/email.txt' #存储这个关系到硬盘中 USING PigStorate();
UDF
支持使用JAVA, python, javascript三种语言编写UDF
JAVA自定义函数较为成熟, 其他两种功能还有限