
图1.1 MapReduce 执行流程图
MapReduce伪代码:
实现Map和Reduce两个函数[3]
Map函数和Reduce函数用户自己实现的,这两个函数的作用是定义任务本身。
Map函数
在接受一个键值对(key-value pair)的同时会产生一组中间键值对。MapReduce框架会将map函数产生的中间键值对里键相同的值传递给一个reduce函数。
ClassMapper
methodmap(String input_key, String input_value):
// input_key: text document name
// input_value: document contents
for eachword w ininput_value:
EmitIntermediate(w, "1");
Reduce函数
接受一个键,以及相关的一组值,将这组值进行合并产生一组规模更小的值(通常只有一个或零个值)。
ClassReducer
method reduce(String output_key,Iteratorintermediate_values):
// output_key: a word
// output_values: a list of counts
intresult = 0;
for eachv inintermediate_values:
result += ParseInt(v);
Emit(AsString(result));
Dryad:
Dryad是微软发布的分布式并行计算平台,他是微软为了抗衡Google公司的MapReduce而开发的。微软的Dryad项目主要研究用于编写并行和分布式程序的编程模型。
DryadLINQ被用于在该平台上构建应用。与谷歌开发的平台MapReduce相似的地方是Dryad也是通过分布式计算来实现对于海量数据的处理。但它与与MapReduce还是有不同之处:Dryad为Windows HPC Server的计算机集群设计的,但DryadLINQ使用的是.NET的LINQ查询语言模型。
Dryad的“社区技术预览”要求必须有基于Windows HPC Pack 2008 R2 Enterprise的计算机集群,并且安装有Service Pack 1。
- 上一篇:基于VC++的图像锐化算法的研究与实现
- 下一篇:jsp+mysql中小型药店供销存管理系统的设计与实现
-
-
-
-
-
-
-
java+mysql车辆管理系统的设计+源代码
酸性水汽提装置总汽提塔设计+CAD图纸
十二层带中心支撑钢结构...
当代大学生慈善意识研究+文献综述
乳业同业并购式全产业链...
大众媒体对公共政策制定的影响
中考体育项目与体育教学合理结合的研究
河岸冲刷和泥沙淤积的监测国内外研究现状
杂拟谷盗体内共生菌沃尔...
电站锅炉暖风器设计任务书