欢迎来到天天文库
浏览记录
ID:25526821
大小:234.00 KB
页数:6页
时间:2018-11-20
《google论文3-mapreduce(下)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、【google论文三】MapReduce:简化大集群上的数据处理(下) 2010-10-0218:07:36
2、 分类:搜索与分布式
3、 标签:排序 mapreduce task google reduce
4、字号大中小 订阅 转载请注明:http://duanple.blog.163.com/blog/static/70971767201092673696/ 作者phylips@bmy5.性能在本节中我们将通过运行在大集群的机器上的两个计算来测量MapReduce的性能。一个计算在大概1
5、TB的数据中搜索给定模式的文本。另一个计算对接近1T的数据进行排序。 这两个程序就可以代表MapReduce用户所写的实际程序中的大部分子集:一类是将数据从一种表现形式转换为另一种表现形式的程序,另一类就是从一个大数据集合中抽取少量感兴趣的数据集。 5.1 集群配置所有的程序都是在一个由将近1800台机器组成的集群上执行。每台机器有2个打开了超线程的2GIntelXeon处理器,4GB内存,2个160GBIDE硬盘,一个gigabit以太网链路。这些机器安排在一个两级的树形交换网络上,根节点具有接近
6、100-200Gbps的总体带宽。所有机器具有相同的配置,因此在任意两个机器间的往返时间小于1ms。 在4GB内存中,大概1-1.5G内存预留给在集群上运行的其他task。程序在一个周末的下午执行,此时cpu硬盘网络接近空闲。 5.2 GrepGrep程序通过扫描10^10个100字节的记录,查找一个很少出现的三字符模式(该模式出现在92337个记录里)。输入被划分为近似64MB大小的片段(M=15000),整个输出被放在一个文件中(R=1)。 图2展示了整个计算的处理过程。Y轴表示输入数据的扫描速
7、率。伴随这安排用于进行该MapReduce操作的机器数的增多,该速率也在逐渐攀升,当有1764个worker被分配该任务后达到了30GB/s的峰值。当maptask结束后,该速率开始下降,大概在80秒的时候基本上降为0。整个计算过程花费了接近150秒,这包括一分钟的启动时间(这个开销主要是由将程序传输给所有worker,与GFS交互以打开1000个输入文件以及得到本地化优化所需要的信息造成的)。 5.3 排序排序程序对10^10个100字节的记录进行排序(接近1TB数据)。这个程序根据TeraSor
8、tBenchmark进行了建模。 排序程序总共由不到50行用户代码组成。Map函数只有3行,将10字节长的排序用key值从一个文本行中抽取出来,然后输出该key,以及原始的文本行,作为中间结果key/value对。我们使用内建的Identity函数作为reduce操作。该函数将中间结果不过任何改变地输出。最后的排好序的结果写到一个具有2个副本的GFS文件集合上(即该程序将会产生2TB的输出)。 与之前的类似,输入数据被划分为64MB的片段(M=15000)。排好序的输出被划分为4000个输出(R=40
9、00)。划分函数使用key的字节表示来将它们划分为R个片段。 对于该benchmark的划分函数建立在对于key值分布的了解上。对于一个通常的排序问题里,我们会增加一个预先进行的MapReduce操作,该操作会收集key值的采样值,然后使用这些key值的采样来计算最终排序序列的划分点。 图3(a)展示了该排序程序的一个正常的处理过程。左上角的图表示输入速率。峰值速率大概是13GB/s,由于所有的maptask在200秒前都结束了,所以该速率下降的很快。可以看到,输入速率要小于grep。这是因为排序的m
10、aptask花费了大概一半的时间和IO带宽将中间结果写入到本地硬盘上。而与之相比,grep的中间结果输出几乎可以忽略不及。 左边中间的图展示了数据从Maptask向reducetask的网络传输速率。当第一个maptask完成后,shuffling就开始了。图中的第一个峰值是由于第一批的1700个reducetask都启动后产生的(整个MapReduce操作被分配给大概大概1700个机器,每个机器同一时刻最多执行一个Reducetask)。大体上在300秒的时候,这一批的reducetask结束,然后
11、启动了剩余的reducetask的shffling过程。大概在600秒时,这些shuffling才结束。 左边最底下的图形展示了reducetask将排好序的数据写入最终输出文件的速率。在第一次的shuffling的结束与数据写入开始之间存在一个延时,是因为机器此时正忙着对中间数据进行排序。写入过程在一段时间内大概持续着大概2-4GB/s的速率。所有的写入大概在850秒的时候结束。假设启动的花费,整个计算花费了891秒。这接近于当前Terasortben
此文档下载收益归作者所有