hadoop0基础班(五)

參考炼数成金课程及hadoop权威指南

本次课程主要讲述pig

pig能够看做是hadoop的client软件。能够连接到hadoop集群进行数据分析工作。

pig方便不熟悉java的用户,使用一种较为简便的类似于SQL的面向数据流的语言pig Latin进行数据处理,是一种轻量级的脚本语言。

pig能够看成是个映射器。pig latin是被映射成mapreduce来运行的。

下载:

在官网上下载pig,有包含debian在内的各种版本号可供下载

编辑环境变量:


这是centos系统

进入grunt(pig的shell名称) shell(本地模式,连接的不是hadoop的集群。是本地的文件系统)


pig的工作模式:

1.上面说的本地模式

2.mapreduce模式(集群模式)

设置path,添加指向hadoop/bin

设置PIG_CLASSPATH环境变量


然后进入grunt shell,在集群模式下直接打pig就可以


pig的使用:

官网pig.apace.org

执行方法:

三种

1.脚本(pig    XXX.pig) 2.grunt 3.嵌入式

grunt 自己主动补全机制(补全命令,不能补全文件名称什么的)        Eclipse插件pigpen          Autocomplete文件

grunt shell经常使用命令

  

ls、cd、cat命令



copyToLocal


hdfs复制到本地


也能够执行普通的shell命令


sh                ..............





pig latin语言:

数据类型:

Bag:表     Tuple:行,记录        Field:属性        pig不要求同一个bag里面的各个tuple有同样数量或同样类型的field

pig latin经常使用语句:

load:指出加载数据的方法

foreach:逐行扫描进行某种处理

filter:过滤行

dump:把结果显示到屏幕

store:把结果保存到文件

以下以hadoop权威指南的样例做一个解说:(找每一年中的最大温度)


第一行load是从hadoop的文件系统里读入文件放到records里面然后指出区分每一列,第一列year,字符串类型,后两个类似

第二条命令filter是过滤,后面跟着过滤条件,赋给fltered_records

第三条是group命令是以year为聚合条件,产生结果

(1940,{{1949,111,1}。{1949,333,2}})

第四条命令是逐行扫描,然后求出每一年最大温度









posted on 2017-04-18 08:13  ljbguanli  阅读(127)  评论(0编辑  收藏  举报