ImageVerifierCode 换一换
格式:PPTX , 页数:81 ,大小:1.39MB ,
资源ID:2197614      下载积分:2 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2197614.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(高级MapReduce编程技术.pptx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

高级MapReduce编程技术.pptx

1、Ch.7.Ch.7.高级高级MapReduce MapReduce 编程技术编程技术MapReduceMapReduce海量数据并行处理海量数据并行处理Ch.7.Ch.7.高级高级MapReduceMapReduce编程技术编程技术1.复合键值对的使用2.用户自定义数据类型3.用户自定义输入输出格式4.用户自定义Partitioner和Combiner5.迭代完成MapReduce计算6.链式MapReduce任务7.多数据源的连接8.全局参数/数据文件的传递9.其它处理技术用复合键让系统完成排序用复合键让系统完成排序map计算过程结束后进行Partitioning处理时,系统自动按照map的

2、输出键进行排序,因此,进入Reduce节点的(key,value)对将保证是按照key进行排序的,而value则不保证是排好序的。为了解决这个问题,可以在Reduce过程中对value列表中的各个value进行本地排序。但当value列表数据量巨大、无法在本地内存中进行排序时,将出现问题。一个更好的办法是,将value中需要排序的部分加入到key中形成复合键,这样将能利用MapRecue系统的排序功能完成排序。但需要实现一个新的Partitioner,保证原来同一key值的键值对最后分区到同一个Reduce节点上。1.1.复合键值对的使用复合键值对的使用用复合键让系统完成排序用复合键让系统完成

3、排序复合键值对的使用复合键值对的使用带频率的倒排索引示例1:class Mapper2:procedure Map(docid n,doc d)3:H new AssociativeArray4:for all term t doc d do5:Ht Ht+16:for all term t H do7:Emit(term t,posting)1:class Reducer2:procedure Reduce(term t,postings,)3:P new List4:for all posting postings,do5:Append(P,)6:Sort(P);/进入Reduce节点的p

4、ostings不保证按照文档序/号排序,因而需要对postings进行一个本地排序7:Emit(term t;postings P)用复合键让系统完成排序用复合键让系统完成排序复合键值对的使用复合键值对的使用带频率的倒排索引示例为了能利用系统自动对docid进行排序,解决方法是:代之以生成(term,)键值对,map时将term和docid组合起来形成复合键。但会引起新的问题,同一个term下的所有posting信息无法被分区到同一个Reduce节点,为此,需要实现一个新的Partitioner:从中取出term,以term作为key进行分区。A revised example复合键值对的使用

5、复合键值对的使用Inverted IndexingA revised example(cont.)Customized PartitionerCustomized Partitioner复合键值对的使用复合键值对的使用进入入reducereduce的的键值对按照按照(term,docid)(term,docid)排序排序把小的键值对合并成大的键值对把小的键值对合并成大的键值对通常一个计算问题会产生大量的键值对,为了减少键值对传输和排序的开销,一些问题中的大量小的键值对可以被合并成一些大的键值对(pairs-stripes)。单词同现矩阵算法一个Map可能会产生单词a与其它单词间的多个键值对,这

6、些键值对可以在Map过程中合并成右侧的一个大的键值对(条):然后,在Reduce阶段,把每个单词a的键值对(条)进行累加:复合键值对的使用复合键值对的使用(a,b)1(a,c)2(a,d)5(a,e)3(a,f)2 a b:1,c:2,d:5,e:3,f:2 a b:1,d:5,e:3 a b:1,c:2,d:2,f:2 a b:2,c:2,d:7,e:3,f:2+把小的键值对合并成大的键值对把小的键值对合并成大的键值对单词同现矩阵算法复合键值对的使用复合键值对的使用Cluster size:38 coresData Source:Associated Press Worldstream(AP

7、W)of the English Gigaword Corpus(v3),which contains 2.27 million documents(1.8 GB compressed,5.7 GB uncompressed)把小的键值对合并成大的键值对把小的键值对合并成大的键值对用JobTracker的Web GUI可以观察优化执行后各项统计数据复合键值对的使用复合键值对的使用HadoopHadoop内置的数据类型内置的数据类型这些数据类型都实现了WritableComparable接口,以便进行网络传输和文件存储,以及进行大小比较。2.2.用户自定义数据类型用户自定义数据类型用户自定义数据

8、类型用户自定义数据类型需要实现Writable接口,作为key或者需要比较大小时则需要实现WritableComparable接口用户自定义数据类型用户自定义数据类型public class Point3D implements WritableComparable private int x,y,z;public int getX()return x;public int getY()return y;public int getZ()return z;public void write(DataOutput out)throws IOException out.writeFloat(x);

9、out.writeFloat(y);out.writeFloat(z);public void readFields(DataInput in)throws IOException x=in.readFloat();y=in.readFloat();z=in.readFloat();public int compareTo(Point3D p)/compares this(x,y,z)with p(x,y,z)and outputs-1,0,1 若用户需要自定义数据类型若用户需要自定义数据类型,实现实现WritableComparableWritableComparable接口接口public

10、 class Edge implements WritableComparable private String departureNode;private String arrivalNode;public String getDepartureNode()return departureNode;Overridepublic void readFields(DataInput in)throws IOException departureNode=in.readUTF();arrivalNode=in.readUTF();Overridepublic void write(DataOutp

11、ut out)throws IOException out.writeUTF(departureNode);out.writeUTF(arrivalNode);Overridepublic int compareTo(Edge o)return(departureNpareTo(o.departureNode)!=0)?departureNpareTo(o.departureNode):arrivalNpareTo(o.arrivalNode);用户自定义数据类型用户自定义数据类型HadoopHadoop内置的文件输入格式内置的文件输入格式3.3.用户自定义输入输出格式用户自定义输入输出格式I

12、nputFormat:InputFormat:Description:Description:Key:Key:Value:Value:TextInputFormatDefault format;reads lines of text filesThe byte offset of the lineThe line contentsKeyValueTextInputFormatParses lines into key-val pairsEverything up to the first tab characterThe remainder of the lineSequenceFileInp

13、utFormatA Hadoop-specific high-performance binary formatuser-defineduser-definedHadoopHadoop内置的文件输入格式内置的文件输入格式3.3.用户自定义输入输出格式用户自定义输入输出格式AutoInputFormat,CombineFileInutFormat,CompositeInputFormat,DBInputFormat,FileInputFormat,KeyValueTextInputFormat,LineDocInputFormat,MultiFileInputFormat,NLineInputF

14、ormat,SequenceFileAsBinaryInputFormat,SequenceFileAsTextInputFormat,SequenceFileInputFilter,SequenceFileInputFormat,StreamInputFormat,TextInputFormatHadoopHadoop内置的内置的RecordReaderRecordReaderRecordReaderRecordReader:InputFormatInputFormatDescription:Description:LineRecordReaderdefault reader for Tex

15、tInputFormatreads lines of text filesKeyValueLineRecordReaderdefault reader for KeyValueTextInputFormatparses lines into key-val pairsSequenceFileRecordReaderdefault reader for SequenceFileInputFormatUser-defined methods to create keys and values用户自定义输入输出格式用户自定义输入输出格式HadoopHadoop内置的内置的RecordReaderRe

16、cordReader用户自定义输入输出格式用户自定义输入输出格式CombineFileRecordReader,DBInputFormat.DBRecordReader,InnerJoinRecordReader,JoinRecordReader,KeyValueLineRecordReader,LineDocRecordReader,MultiFilterRecordReader,OuterJoinRecordReader,OverrideRecordReader,SequenceFileAsBinaryInputFormat.SequenceFileAsBinaryRecordReader,SequenceFileAsTextRecordReader,SequenceFileRecordReader,StreamBaseRecordReader,StreamXmlRecordReader,WrappedRecordReader用户自定义用户自定义InputFormatInputFormat和和RecordReaderRecordReader示例示例简单的文档倒排索引import j

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1