Pig数据分析系统-数据流执行引擎培训课件_第1页
Pig数据分析系统-数据流执行引擎培训课件_第2页
Pig数据分析系统-数据流执行引擎培训课件_第3页
Pig数据分析系统-数据流执行引擎培训课件_第4页
Pig数据分析系统-数据流执行引擎培训课件_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Pig数据流执行引擎主要内容1.

Pig是什么Pig使用Pig

LatinPig调优总结Pig是什么Hadoop上的数据流执行引擎(由Yahoo!开源)利用HDFS存储数据利用MapReduce处理数据使用PigLatin语言表达数据流PigLatin是一种新的数据流语言Pig将PigLatin语句转化为MapReduce作业PigLatin比MapReduce程序更易编写直接产生动机:让MapReduce用起来更简单与Hive一致Pig与Hive异同相同点运行在Hadoop之上;设计动机是为用户提供一种更简单的Hadoop上数据分析方式;解决相同问题的两个工具(yahoo!vs

facebook)。不同点Hive要求待处理数据必须有Schema,而Pig则无此要求;Hive有Server需要安装,Pig无Server不需要安装;编程语言不同,SQL与PigLatinSQL:得到什么样的结果,Pig

Latin:如何处理数据SQL:过程化语言,Pig

Latin:数据流语言主要内容1.

Pig是什么Pig使用Pig

LatinPig调优总结WordCount问题WordCount实现--

加载数据input=load‘/input/data’as

(line:chararray);--

将字符串分割成单词words=foreachinput

generateflatten(TOKENIZE(line))as

word;--

对单词进行分组grpd=groupwordsby

word;--

统计每组中单词数量cntd=foreachgrpdgenerategroup,COUNT(words);--

打印结果dump

cntd;运行Pig

Latin本地模式pig_path/bin/pig–xlocal

wordount.pig集群模式PIG_CLASSPATH=hadoop_conf_dirpig_path/bin/pig

wordcount.pig其他使用方式pig-efs–copyFromLocallocal_path

hdfs_pathpig

hdfs://:9020/myscripts/script.pigpig–Dfile=true

wordount.pigpig–Pperties

wordcount.pig通常结合Oozie等使用Oozie是什么作业流调度系统根据配置对作业进行周期调度或者定时调度同时支持MapReduce、Hive、Pig等包含监控、报警等功能怎样让Oozie调度pig作业Oozie将Pig作业封装成了action可让Pig作业与MapReduce、Sqoop等连用主要内容1.

Pig是什么Pig使用Pig

LatinPig调优总结数据模型可通过LOAD、FOREACH和STREAM三个操作符将数据模式化可为每个模式指名每个字段的类型,也可以不指名,默认是bytearray举例如下:A

=LOAD

‘data’

AS

(f1:int,

f2:int);

//

提倡写法A

=LOAD

‘data’

AS

(f1,

f2);

//f1和f2均为bytearrayA

=LOAD

‘data’

//可以这样定义,但是schema未知--X=FOREACHAGENERATEf1+f2AS

x1:int;--A=LOAD

'data';B=STREAM

A

THROUGH

`stream.py

-n

5`

AS

(f1:int,

f2:int);数据类型—简单数据类型类型大小举例int4

byte

有符号整型20long8

byte

有符号整型20float单精度浮点型20double双度浮点型20chararrayUTF-8编码的字符串hello

worldbytearrayByte数组boolean布尔类型true/falsedatetime时间1970-01-01T00:00:00.000+00:00bigintegerJava

BigInteger200000000000bigdecimalJava

BigDecimal33.456783321323441233442数据类型—复杂数据类型类型大小举例tuple有序数据集(19,2)bagTuple构成的集合{(19,2),

(18,1)}mapKey/value集合[open#apache]复杂数据类型—map数据格式>catdata;[open#apache][apache#hadoop]将数据加载到map中A=LOAD‘data’AS(M:map

[]);A=LOAD‘data’AS

(M:[])复杂数据类型—tuple数据格式>cat

data(3,8,9)

(mary,19)(1,4,7)

(john,18)(2,5,8)

(joe,18)将数据加载到tuple中A=LOADdataAS(F:tuple(f1:int,f2:int,f3:int),T:tuple(t1:chararray,t2:int));DESCRIBE

A;A:{F:(f1:int,f2:int,f3:int),T:(t1:chararray,t2:

int)}复杂数据类型—tuple与bag常用操作ForeachFilterGroupOrder

byDistinctJoinLimitSampleparallelload操作加载/logs/2014/04目录下的日志,并保存到clicklogs中:clicklogs=LOAD

'logs/2014/04';对字段进行重命名clicklogs=LOAD‘logs/2014/04‘AS(userid:int,url:

chararray);默认字段间分隔符是TAB,可修改分隔符:LOAD‘logs/2014/04’USING

PigStorage(‘,’)注意:Load操作并不会真正的执行,直到遇到a

dump/store操作Describe,

Dump与StoreDescribe用于描述变量的schema:describe

combotimes;Dump将结果打印到终端上:DUMP

combotimes;Store将结果保存到目录或者文件中:STOREcombotimesINTO

‘result/2014’;foreachTokenize函数group科技小象Join其他(一)Filter(过滤):--

filter_matches.pigdivs=load'NYSE_dividends'as(exchange:chararray,symbol:chararray,date:chararray,

dividends:float);startswithcm=filterdivsbysymbolmatches

'CM.*';Distinct(去重):--

dictinct.pigdaily=load'NYSE_daily'as(exchange:chararray,

symbol:chararray);uniq=distinct

daily;Limit(返回N条结果):--limit.pigdivs=load

'NYSE_dividends';first10=limitdivs

10;其他(二)Sample(采样,百分比):--sample.pigdivs=load

'NYSE_dividends';some=sampledivs

0.1;Parallel(设置reduce

task个数):--parallel.pigdaily=load'NYSE_daily'as(exchange,symbol,date,open,high,low,

close,volume,

adj_close);bysymbl=groupdailybysymbolparallel

10;Order

by(排序):--order2key.pigdaily=load'NYSE_daily'as(exchange:chararray,

symbol:chararray,date:chararray,open:float,high:float,

low:float,close:float,volume:int,

adj_close:float);bydatensymbol=orderdailybydatedesc,

symbol;主要内容1.

Pig是什么Pig使用Pig

LatinPig调优总结Join优化fragment-replicate

join或者shuffle

join或者map-side

join(一个大表一个小表):--repljoin.pigdaily=load'NYSE_daily'as(exchange:chararray,symbol:chararray,date:chararray,open:float,high:float,

low:float,close:float,volume:int,

adj_close:float);divs=load'NYSE_dividends'as(exchange:chararray,

symbol:chararray,date:chararray,

dividends:float);jnd=joindailyby(exchange,symbol),divsby(exchange,

symbol)using'replicated';注:后一个表是小表Skew

data

join(一个表某个key特别多):users=load'users'as(name:chararray,city:chararray);cinfo=load'cityinfo'as(city:chararray,population:int);jnd=joincinfobycity,usersbycityusing'skewed';注:后一个表是skew表Join优化两个有序表join:--mergejoin.pigdaily=load'NYSE_daily_sorted'as(exchange:chararray,

symbol:chararray,date:chararray,open:float,high:float,

low:float,close:float,volume:int,

adj_close:float);divs=load'NYSE_dividends_sorted'as(exchange:chararray,

symbol:chararray,date:chararray,

dividends:float);j

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论