Pig 数据分析引擎
什么是Pig
Pig 是一个用来处理大规模数据集的平台,由 Yahoo!贡献给 Apache
Pig 可以简化 MapReduce 任务的开发
Pig 可以看做hadoop的客户端软件,可以连接到 hadoop 集群进行数据分析工作
Pig 方便不熟悉 java 的用户,使用一种较为简便的类似于 SQL 的面向数据流的语言
pig Latin 进行数据处理
Pig Latin 可以迕行排序、过滤、求和、分组、关联等常用操作,还可以自定义函数,是一种面向数据分析处理的轻量级脚本语言
Pig 可以看做是 PigLatin 到MapReduce的映射器
Pig 可以自动对集群进行分配和回收,并自动的对MapReduce程序进行优化
Pig的体系结构
![这里写图片描述](https://img-blog.csdn.net/20171005224217407?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvVU5JUVVFX1hJQU9YSQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
安装和配置Pig
在服务器解压 然后配置环境变量
解压
tar -zxvf pig-0.17.0.tar.gz -C ~/training/
----->
设置环境变量
PIG_HOME=/root/training/pig-0.17.0
export PIG_HOME
PATH=$PIG_HOME/bin:$PATH
export PATH
使环境变量生效
source ~/.bash_profile
Pig的工作模式
1.本地模式:操作的是linux系统上的文件
启动命令
[root@linux111 tools]# pig -x local
日志信息
org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to hadoop file system at: file:///
2.集群模式:连接到hadoop进行操作
配置:设置一个环境变量 PIG_CLASSPATH 指向Hadoop配置文件所在的目录
PIG_CLASSPATH=/root/training/hadoop-2.7.3/etc/hadoop
export PIG_CLASSPATH
PIG的常见命令
ls、cd、cat、mkdir、pwd
copyFromLocal、copyToLocal
sh
register、define
1、效率比直接执行HDFS的命令高
2、sh命令:在Pig的集群模式下,执行操作系统的命令
3、Pig的自定义函数的命令: register(注册jar包), define(创建别名)
使用PigLatin语句分析数据
1、启动HistoryServer
2、常用的PigLatin语句
(*) load: 加载数据到表中(bag)
(*) foreach:对表中的每一条数据tuple进行处理
(*) filter: 相当于where
(*) group by
(*) join : 连接(多表查询)
(*) generate: 提取列
(*) union/intersect:集合运算
(*) 输出 dump 直接打印在屏幕
store 输出到HDFS