bet 体育_bet36官网比分查询
您当前所在的位置:主页 > 365体育投注 >

Google MapReduce是否经过巧妙优化?

主题:Google MapReduce是否经过巧妙优化
????????????? 对于致力于架构的人来说,Google的架构文档是强制性的,但由于每个人似乎都愿意用英语发誓文档,添加他们阅读的注释并添加他们自己的文档请添加。想一想,与大家分享。
“MapReduce解决了什么问题”简介,这是第二个,Google MapReduce Optimization Enlightenment(中)。
什么是MapReduce
MapReduce编程模型解决了什么问题
Google MapReduce是由Google开发的一种编程模型,Google还提供了一种架构实现,可以解决可以通过拆分和征服来解决的问题。
同时,在上一篇文章中,我们重点关注“计算出现在许多文档中的单词数”作为例子,并说明如何编写地图和简化来解决实际问题。
配音,我强烈建议你查看原始性别的轮廓。
“MapReduce解决了什么问题
MapReduce的核心思想如下。
并行 首先重建 下图显示了“字频统计”的MR计算过程。
从左到右的四个部分如下。
输入文件 点:M平行图计算的例子 组合:R并行减少计算的例子 输出结果 查看最后一步并减少最终结果的输出。
可以看出,R的简化实例同时被处理并直接产生计数的最终结果。
输出示例1:(a,256)(能够,128)(emacs,1)
输出示例2:(f * ck,32768)(编码,65535)
输出示例3:(vim,65535)(x,16)(零,258)
配音:这是整体的结果。你可以看到vim远比emacs更受欢迎。
重要的是要理解在任何一种情况下都不显示字数,因为这是商业计算的最终结果:换句话说,如果(a,256)没有显示在实例1的输出中退出实例。
旁白:否则,你需要合并。这不是最终结果。
查看中间步骤并映射缩小过程。
M映射实例的输出显示R用作减少实例的输入。
潜在问题1:每个地图可能生成(a,1),最终结果(a,256)必须通过收缩生成。我怎样才能保证地图上每个出口处的相同按键都会缩小
这是“分区功能”的操作。
什么是分区功能
分区函数是使用MapReduce的用户需要实现并决定用于映射输出的每个键的缩减的函数。
画外音:如果用户未实现,则使用默认分区功能。
以词频统计的应用为例,分布函数如下。
(1)以[a-g]开头的键进入第一个缩减实例。
(2)以[h-n]开头的键对应于第二次缩小。
(3)以[o-z]开头的键成为第三次缩减的实例。
配音:它有点类似于水平目标数据库的“范围方法”。
实现分区功能的要点是什么
为了允许每个简化实例几乎同时完成工作任务,分区函数的实现点如下。尽可能分配负载。
配音:换句话说,数据均匀分布。
前一个词的频率统计分布函数,负载不均衡。有些减少了处理更多单词的实例,有些则减少了射击游戏的数量。这可能发生。处理所有实例减少,并最终减少长队列减少。
对于字频统计,最平衡的分区函数是:
哈希(键)%3
配音:它有点类似于数据库级别分段的“哈希方法”。
潜在问题2:每个地图可能会生成多个结果(a,1),减少网络带宽资源,计算机资源可能不可见。
这就是“融合功能”的作用。
什么是融合功能 有时,地图生成的中间密钥占用大部分重复数据,并可为用户提供自定义功能。一旦地图的实例完成,就进行一次本地连接,这可以通过网络传输和减少计算资源来大大节省。
组合函数在每个映射任务结束之前执行一次。通常,连接功能与缩减功能相同。不同之处是:
执行本地组合数据合并地图实例的执行 缩减功能执行最终组合并从多个地图实例中收集数据。 对于Word Frequency Statistics应用程序,组合函数可以:
多个(a,1)映射实例组合成一个输出(a,$ count)。
最后,观察第一步,将文件输入到地图中的过程。
可能的问题3:如何将文件条目检入地图
只要负载平衡,只要您平均分配输入文件的大小,就不需要将其分配给任何映射实例。
旁白:无论地图如何,您都可以正确处理。
结论
Google MapReduce实现了一组优化。 分配功能:降低相同的下降,保证不同地图的主要输出相同 ?融合功能:在地图末尾本地合并同一密钥的多个输出,节省公共资源 如何在地图上拆分输入文件:随机,甚至拆分 我希望您了解MapReduce的优化理念,并且这个想法比结论更重要。
在下一章中,我们将讨论Google MapReduce的工程架构的实现。
编辑负责人:

上一篇:20个研究美国老司机的建议不应该包含在对国外学 下一篇:2至3岁的孩子将是小鬼,他们会让他们的父母更有