网站首页  |   业界社区  |  电信社区  |  技术社区   |  极客社区  |  游戏社区  |  生活社区   |   科技博客  |   同事录
TechWeb-业界社区


标题: MapReduce的解释
游客
未注册









发表于 08-1-31 09:00
MapReduce的解释

Mark Chu-Carroll是Google的一位软件工程师,他本周在他的个人博客中对MapReduce这个Google编程模型进行了一些解释。MapReduce能够将一个大的任务迅速拆分给在Google的服务器群(或者单台超级计算机,这取决于你怎么看)里的许多电脑。

    什么是MapReduce? 它如何工作?

    想象一下,你正在工作,现在需要做一件需要在电脑上运行很长时间的工作,你不愿意干等着,但是也不愿意去花上百美元去买超级计算机。那怎么能让它运行的快一些呢?有一个办法就是买上一堆便宜的电脑,然后让他们同时工作。值得注意的是,你的办公室里面已经有很多电脑了──大部分的办公室里面,每一个雇员的桌上都有一台电脑,而且通常他们并不是在做太多事情。所以为什么不物尽其用呢?当你的电脑没有在做太多事情的时候,暂时把你没用到的性能借给你的同事,当你的任务需要电脑劳动起来,你也可以借用他们的电脑资源。所以当你要执行一个很大的任务的时候,很轻易就可以找到一堆便宜的电脑。

    问题来了,大部分的程序可都不是按照在一堆电脑上运行来写的,他们都是按照在一台机器上面写得,把一个很麻烦的任务拆分给一堆电脑是一件很麻烦的事情。

    MapReduce就是能够让你实际的、规范化的编制可以分拆给很多电脑的程序的库(library)。它的基本思想是把你的任务分成两部分: Map(映射)和Reduce(化简)。映射会把任务分成子任务,再把子任务分配给不同的电脑,这样每一个子任务都可以同时进行了。化简把每一个负责子任务的计算机返回的结果综合起来,然后得到一个简单的答案。

Mark还提到了 “MapReduce 的诱人之处还在于它很好写” 和 MapReduce (或“M/R”) 程序 “真的让并行编程比以往都简单”。 对于MapReduce的更多解释,可以参看维基百科或者《什么是MapReduce? Google的分布运算开发工具!》(作者Tinyfool)(中文),还有 Google research publication 关于这个话题的内容(英文)。

[来自 Friendfeed. Mark的这篇post是 Creative Commons 授权的.]

原文:MapReduce Explained

引用 回复 顶部
查看积分策略说明快速回复主题
选项 标题 Smilies
禁用 URL 识别
禁用 Smilies
禁用 Discuz!代码
使用个人签名
接收新回复邮件通知
内容





当前时区 GMT+8, 现在时间是 08-9-6 01:33
京ICP证060517号

本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.5.0 © 2001-2008 Comsenz Inc.
清除 Cookies - 联系我们 - TechWeb.com.cn - Archiver - WAP