1、第9讲 Pig开发应用,主要内容,Pig 是什么? 安装Pig Grunt shell及shell命令 Pig latin语言 例子,pig,Pig是一个用于并行计算的高级数据流语言和执行框架,是map-reduce上构建的一种高级查询语言。 处理大数据集。 Pig可以看做hadoop的客户端软件,可以连接到hadoop集群进行数据分析工作 Pig方便不熟悉java的用户,使用一种较为简便的类似于SQL的面向数据流的语言pig latin进行数据处理 Pig latin可以进行排序、过滤、求和、分组、关联等常用操作,还可以自定义函数,这是一种面向数据分析处理的轻量级脚本语言 Pig可以看做是p
2、ig latin到map-reduce的映射器,Pig特点:,Pig的底层由一个编译器组成,他在运行的时候会产生一些mapreduce程序序列,并且这里大规模的并行依然存在。当前,pig的语言层由一个叫做Pig Latin的正文型语言组成,有如下特点: 易于编程:对于那些简单的并且不易并行的数据分析任务并不需要实行并行执行的目标。多重关联的数据转换任务需要明确被编码成数据流序列,让他们易于被书写、理解和掌握。 最优化机会:任务被编码的方式允许系统执行的时候进行自动优化,用户更需要注意的是程序语义的设计而不是效率。 扩展性:用户能自定义函数来实现特殊的目的。,Pig框架,安装pig,下载并解压p
3、ig安装包( http:/pig.apache.org/) 设置环境变量 进入grunt shell验证,下载并解压pig安装包,编辑环境变量,重新登录使环境变量生效,用set命令检查环境变量,进入grunt shell,Pig工作模式,本地模式:所有文件和执行过程都在本地,一般用于测试程序 输入pig x local Mapreduce模式(hadoop模式):实际工作模式 输入pig,配置pig的map-reduce模式,设置PATH,增加指向hadoop/bin 设置PIG_CLASSPATH环境变量 修改hosts文件 启动pig,设置PIG_CLASSPATH环境变量,设置完成后重新
4、登录使环境变量生效,修改hosts文件,启动grunt shell,Pig参考文档大全,Pig的运行方法,脚本 ( pig x local /home/pig/sc/sc.pig) Grunt 嵌入式,Grunt,自动补全机制 Autocomplete文件 Eclipse插件PigPen,Grunt shell命令,ls、cd、cat,copyToLocal,执行操作系统命令:sh,Pig数据模型,Bag:表 Tuple:行,记录 Field:属性 Pig不要求同一个bag里面的各个tuple有相同数量或相同类型的field,Pig latin常用语句,LOAD:指出载入数据的方法 FOREA
5、CH:逐行扫描进行某种处理 FILTER:过滤行 DUMP:把结果显示到屏幕 STORE:把结果保存到文件,LOAD、FOREACH、STORE三部曲,结果,UDF,支持使用Java、Python、Javascript三种语言编写UDF Java自定义函数较为成熟,其它两种功能还有限,用PIG实现各种SQL的效果,http:/ Latin 进阶 数据格式 任务目标: 计算一名学生被多少位老师教过 方法一: 先 DISTINCT, 再计数 DISTINCT 能够对所有数据去重 方法二: 先分组 FOREACH 嵌套 使用 DISTINCT,学生成绩处理,任务目标二: 找出每位老师最优秀的两名学生 步骤一: GROUP BY GROUP BY 的嵌套方法 步骤二: ORDER BY FOREACH 嵌套 步骤三: LIMIT 配合 ORDER BY 使用 步骤四: FLATTEN 去括号过程,谢 谢!,