欢迎来到天天文库
浏览记录
ID:30768424
大小:206.50 KB
页数:9页
时间:2019-01-03
《google的三大核心技术mapreduce》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、MapReduce:超大机群上的简单数据处理摘要MapReduce个编程槌豐和处理,产生大数抵蹊的相关实现•用户拆定一个map国数处理•个key/Value对,从而产生中间的key/value集撚后押抬定一个reduce胡数合并所有的貝有和何中间key的中间value.Tifti将列举许多可以用这个模型來衣示的现实世界的工作.以这种方式写的程序能自动的在大规棋的普通机器上实现并行化•这个运行时系统关心这些细节:分刘输入故押;■在机稱上的说皮,机器的错误处理岸理机器之间必耍的通借•这样就可以讣挥些没有井行分布式处理系统经脸的程序员利用大竝分伽式系统的轻流我们的MapReduce实
2、现运行在規换可以灵活调做的由普通机器组成的机样1卜典翹的MapReduce计算处理儿千台机右上的以TB计昴的数据•程序员发现这个系统狂常好用:已经实规了数以百计的跑pReduce程序,毎天在Google的机群上都有1000多个MapReduce程序在执行.在过丈的5年里•作若和Google的许多人已经实现「数以百计的为专门目的而写的计録來处理大址的脈始数据■比如■爬行的文档.Web请求H志弟等•为了计妙各种类吃的派生数妣比饥倒排索引,Web文档的图结构的乞种表示冉个Mil用行的页面数丘的慨毎每夭被请求数盘量多的集合,等等•很多这样的♦»念上很容易理解•然而,綸入的数据址很大,
3、并口只仃计算彼分布左成百上千的机容上才能在可以接受的时间内完成•怎样并行计算份发数据,处理惜氓所有这些问題竦合在一起,便得原本很简介的计舐因为要大师的复杂代码來处理这代树題,而变得让人难以处理.作为对这个复杂性的回应,我们设计一个新的抽色俱型,它讣我们衣示找们将耍执行的简单汁算,而唸藏并行化,容错傲掘分布•负毀均衡的那些杂乱的细节,花一个库也我们的抽象按住的灵憋來自Lisp和许筝英他函数语言的map和reduce的甑始表示.我们认识到我们的许芬计片都包含这样的操作:在我们输入数据的逻辑记录上应用map操作,來计算出一个屮间key/value対集,存所有具有郴同key的value
4、上应用reduce操作•來适当的合并派生的数抵•功能模型的使用■再结合用户捋定的map和reduce操作,让我们可以IE常容易的实现人观模并行化计歟和使用再次执行作为初级机制来实现容惜・这个工作的主要页献足通过简单有力的接门来实现自动的并fj•化和大规模分布式计%结合这个接II的实现来在大M普通的PC机卜.实现高件能计弘第二部分描述培本的编程棋型.并II.给一牝例子•第三部分描述符合我们的培于集於的计愆环境的MapReduce的接11的实现第四部分描述我们觉御编程楔型中一些冇用的技巧•第五部分对于并种不同的任务•测竝我们实現的性能•第八部分探究ft:Google内部使用MapR
5、educe作为基础来礙写我们的鑒引系统产品•第七部分讨论相关的■和耒来的工作.2•编程模型计算利用个输入key/value对集來产生个输出key/value对%.MapReduce朋的用户用两个诵数衣达这个计算:map和reduce.用户白定义的map函数,按受一个输入对撚后产生一个中间key/value对如MapReduce郎把所有具有相同中间keyI的中间value疑合在一起撚后把它们传递给reduce浙数.用户自定义的reduce函数,接受一个中(Hjkeyl和相关的一个value集•它合并这些value,形成一个比较小的value集••股的,每次reduce调用只产生0
6、或1个慟岀value.通过一个迭代器把中何value提供绐用门£1定义的reduce函数•这样可以便我们很抵内存來控制value列表的大小.2.1实例考虑这个问题:计算在一个夫的文档集合中毎个词出现的次数•用户将写和下面类似的伪代码:map(Stringkey.Stringvalue)://key:文档的名字"value:文档的内容foreachv/ordwinvalue:EmitlntermediateCw;*!”);reduce(Stringkey.lteratorvalues)://key:-个i可//values:—个计数列&intre$ult=O;foreachvmv
7、alues:result+=Parselnt(v);Emit(AsString(resut));map詢数产生毎个词和这个词的出現次数(在这个简单的例子里就是"reduce函数把产生的毎-个特定的词的计数加在一远.另外,用户用输入纳出文件的名字和可选的调节参数來境充个mapreduce规范对線JU户然后询川MapReduce闻数,并把规范对毀传递给它JU户的代码利MapReduce库傩接在-血(用C++实现)•附录A包仔这个实例的全部文本.2.2类型即使前面的伪代讯写成了字符申丝入和输出的t
此文档下载收益归作者所有