google论文3-MapReduce(下).doc
上传人:sy****28 上传时间:2024-09-13 格式:DOC 页数:6 大小:234KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

google论文3-MapReduce(下).doc

google论文3-MapReduce(下).doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

【google论文三】MapReduce:简化大集群上的数据处理(下)2010-10-0218:07:36|分类:HYPERLINK"http://duanple.blog.163.com/blog/"\l"m=0&t=1&c=fks_087071084083088071092087081095083086088068085081080068"\o"搜索与分布式"搜索与分布式|标签:HYPERLINK"http://duanple.blog.163.com/blog/"\l"m=0&t=3&c=排序"排序HYPERLINK"http://duanple.blog.163.com/blog/"\l"m=0&t=3&c=mapreduce"mapreduceHYPERLINK"http://duanple.blog.163.com/blog/"\l"m=0&t=3&c=task"taskHYPERLINK"http://duanple.blog.163.com/blog/"\l"m=0&t=3&c=google"googleHYPERLINK"http://duanple.blog.163.com/blog/"\l"m=0&t=3&c=reduce"reduce|字号大中小订阅转载请注明:HYPERLINK"http://duanple.blog.163.com/blog/static/70971767201092673696/"http://duanple.blog.163.com/blog/static/70971767201092673696/作者HYPERLINK"mailto:phylips@bmy"phylips@bmy5.性能在本节中我们将通过运行在大集群的机器上的两个计算来测量MapReduce的性能。一个计算在大概1TB的数据中搜索给定模式的文本。另一个计算对接近1T的数据进行排序。这两个程序就可以代表MapReduce用户所写的实际程序中的大部分子集:一类是将数据从一种表现形式转换为另一种表现形式的程序,另一类就是从一个大数据集合中抽取少量感兴趣的数据集。5.1集群配置所有的程序都是在一个由将近1800台机器组成的集群上执行。每台机器有2个打开了超线程的2GIntelXeon处理器,4GB内存,2个160GBIDE硬盘,一个gigabit以太网链路。这些机器安排在一个两级的树形交换网络上,根节点具有接近100-200Gbps的总体带宽。所有机器具有相同的配置,因此在任意两个机器间的往返时间小于1ms。在4GB内存中,大概1-1.5G内存预留给在集群上运行的其他task。程序在一个周末的下午执行,此时cpu硬盘网络接近空闲。5.2GrepGrep程序通过扫描10^10个100字节的记录,查找一个很少出现的三字符模式(该模式出现在92337个记录里)。输入被划分为近似64MB大小的片段(M=15000),整个输出被放在一个文件中(R=1)。图2展示了整个计算的处理过程。Y轴表示输入数据的扫描速率。伴随这安排用于进行该MapReduce操作的机器数的增多,该速率也在逐渐攀升,当有1764个worker被分配该任务后达到了30GB/s的峰值。当maptask结束后,该速率开始下降,大概在80秒的时候基本上降为0。整个计算过程花费了接近150秒,这包括一分钟的启动时间(这个开销主要是由将程序传输给所有worker,与GFS交互以打开1000个输入文件以及得到本地化优化所需要的信息造成的)。5.3排序排序程序对10^10个100字节的记录进行排序(接近1TB数据)。这个程序根据TeraSortBenchmark进行了建模。排序程序总共由不到50行用户代码组成。Map函数只有3行,将10字节长的排序用key值从一个文本行中抽取出来,然后输出该key,以及原始的文本行,作为中间结果key/value对。我们使用内建的Identity函数作为reduce操作。该函数将中间结果不过任何改变地输出。最后的排好序的结果写到一个具有2个副本的GFS文件集合上(即该程序将会产生2TB的输出)。与之前的类似,输入数据被划分为64MB的片段(M=15000)。排好序的输出被划分为4000个输出(R=4000)。划分函数使用key的字节表示来将它们划分为R个片段。对于该benchmark的划分函数建立在对于key值分布的了解上。对于一个通常的排序问题里,我们会增加一个预先进行的MapReduce操作,该操作会收集key值的采样值,然后使用这些key值的采样来计算最终排序序列的划分点。图3(a)展示了该排序程序的一个正常的处理过程。左上角的图表示输入速率。峰值