hadoop初级班(五)

来源:互联网 发布:荧光文字配图美图软件 编辑:程序博客网 时间:2024/04/30 03:09

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

本次课程主要讲述pig

pig可以看做是hadoop的客户端软件,可以连接到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}})

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









0 0