版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 闽江学院《会计原理学》2025-2026学年期末试卷
- 江西水利电力大学《卫生法律与监督学》2025-2026学年期末试卷
- 宁德职业技术学院《中药鉴定学》2025-2026学年期末试卷
- 江西工程学院《中医外科学》2025-2026学年期末试卷
- 皖西卫生职业学院《文献学摘要》2025-2026学年期末试卷
- 安徽粮食工程职业学院《教育学概论》2025-2026学年期末试卷
- 华东交通大学《国际结算实务》2025-2026学年期末试卷
- 武夷山职业学院《病原生物与免疫学》2025-2026学年期末试卷
- 芜湖医药健康职业学院《思想政治教育方法论》2025-2026学年期末试卷
- 膜剂工成果强化考核试卷含答案
- 学习先进师德典型事迹
- 《动画场景设计》ppt第五章
- 整理我的小书桌(课件)小学劳动二年级通用版
- 水环境中的界面过程PHASEINTERACTIONS课件
- 有关音乐合唱中合唱的伴奏要求
- MapGIS投影变换教程
- DL-T 736-2021 农村电网剩余电流动作保护器安装运行规程
- GB/T 17783-2019硫化橡胶或热塑性橡胶化学试验样品和试样的制备
- 北京热设计讲座2010
- 跨国公司的跨国并购理论
- GA/T 486-2015城市道路单向交通组织原则
评论
0/150
提交评论