位置: 编程技术 - 正文
谷歌在到年间连续发表了三篇非常有影响力的文章,分别是年在SOSP上发布的GFS,年在OSDI上发布的MapReduce,以及年在OSDI上发布的BigTable。GFS是文件系统相关的,其对后来的分布式文件系统设计具有指导意义;MapReduce是一种并行计算的编程模型,用于作业调度;BigTable是一个用于管理结构化数据的分布式存储系统,构建在GFS、Chubby、SSTable等Google技术之上。相当多的Google应用使用了这三种技术,比如Google Search、Google Earth和Google Analytics等等。因此这三种技术并称为谷歌技术”三宝”。今天,D瓜哥班门弄斧,对MapReduce来个”庖丁解牛”! MapReduce简介 MapReduce是一个编程模型,也是一个处理和生成超大数据集的算法模型的相关实现。用户首先创建一 个Map函数处理一个基于key/value pair的数据集合,输出中间的基于key/value pair的数据集合;然后 再创建一个Reduce函数用来合并所有的具有相同中间key值的中间value值。 一图胜千言,下面我们用一张图来说明一下MapReduce:
编程实践 常言道:”实践出真知” 。是骡子是马,拉出来遛遛才知道。所以,如果真的想搞懂这个原理,还是亲自写代码实践一下才是硬道理。 最近和几个朋友一起学习JavaScript,所以就比较关注JavaScript。昨天上网瞎逛时,惊奇地发现,竟然有牛人使用JavaScript实现了MapReduce算法。然后转过来和大家分享,同时再加上我自己的一些狗尾续貂的介绍,希望有助于大家理解MapReduce。具体代码实现如下: 复制这些代码,直接粘贴到浏览器的控制台(Console)中,或者放到一个HTML文件中,用浏览器打开,就可以在控制台输出中,看到效果如下: 美中不足 这篇文章发布出来之后,就有网友“咆哮”:“一个连多线程都没有的js 搞什么MapReduce啊?”其实,这个问题,D瓜哥也发现了。在看到这个代码的解释后,D瓜哥就纳闷JavaScript不是单进程吗?怎么还能模拟MapReduce?在认真阅读代码,单步调试之后,更加印证了D瓜哥的看法。(关于D瓜哥的疑问已经在代码中注释出来。) 不过,再想一下,这些并不影响我们去理解MapReduce的原理。这只是个单进程,最基础的版本。先理解了这个,再去整个多线程的也许就更容易理解了。 未完待续 其实,D瓜哥现在考虑在这个例子的基础上,用Java实现一个多线程版本,那样模拟的MapReduce更逼真。等D瓜哥把一些问题思考清楚之后,就把代码发出来。敬请期待!
推荐整理分享JavaScript mapreduce工作原理简析,希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!
js arguments对象应用介绍 在javascript中,不需要明确指出参数名,就能访问它们。如:functionhi(){if(arguments[0]=="andy"){return;}alert(arguments[0]);}用arguments[0]可以访问第一个参数,如此
js函数调用常用方法详解 来源javascript语言精粹。这不是书上的源代码。js的函数调用会免费奉送两个而外的参数就是this和arguments。arguments是参数组,他并不是一个真实的数组,
cument.execCommand()用法深入理解 D-Position允许通过拖曳移动绝对定位的对象。AbsolutePosition设定元素的position属性为absolute(绝对)。BackColor设置或获取当前选中区的背景颜色。BlockDirLTR目前
标签: JavaScript mapreduce工作原理简析
本文链接地址:https://www.jiuchutong.com/biancheng/379149.html 转载请保留说明!友情链接: 武汉网站建设