Map Reduce 编程模型和算法实现 MapReduce 是一个编程模型,也是一个处理和生成超大数据集的算法模型的相关实现。用户首先创建一个 Map 函数处理一个基于 key/value pair 的数据集合,输出中间的基于 key/value pair 的数据集合;然后再创建一个 Reduce 函数用来合并所有的具有相同中间 key 值的中间 value 值。 MapReduce 架构的程序能够在大量的普通配置的计算机上实现并行化处理。这个系统在运行时只关心:如何分割输入数据,在大量计算机组成的集群上的调度,集群中计算机的错误处理,管理集群中计算机之间必要的通信。采用 MapReduce 架构可以使那些没有并行计算和分布式处理系统开发经验的程序员有效利用分布式系统的丰富资源。 MapReduce 编程模型的原理是:利用一个输入 key/value pair 集合来产生一个输出的 key/value pair 集合。MapReduce 库的用户用两个函数表达这个计算:Map 和 Reduce。用户自定义的 Map 函数接受一个输入的 key/value pair 值,然后产生一个中间 key/value pair 值的集合。MapReduce 库把所有具有相同中间 key 值 I 的中间 value 值集合在一起后传递给 Reduce 函数。 用户自定义的 Reduce 函数接受一个中间 key 的值 I 和相关的一个 value 值的集合。Reduce 函数合并这些 value 值,形成一个较小的 value 值的集合。一般的,每次 Reduce 函数调用只产生 0 或 1 个输出值。 MapReduce 模型的主要贡献是通过简单的接口来实现自动的并行化和大规模的分布式计算,通过使用 MapReduce 模型接口实现在大量普通的 PC 机上高性能计算。 MapReduce 的主要应用场景包括: * 处理海量的原始数据,例如文档抓取、Web 请求日志等 * 计算处理各种类型的衍生数据,例如倒排索引、Web 文档的图结构的各种表示形势等 * 在大量普通的 PC 机上实现高性能计算 * 在Google 的集群上,每天都有 1000 多个 MapReduce 程序在执行 MapReduce 模型的优点包括: * 能够处理超大数据集 * 能够实现自动的并行化和分布式计算 * 能够在大量普通的 PC 机上实现高性能计算 * 能够使那些没有并行计算和分布式处理系统开发经验的程序员有效利用分布式系统的丰富资源 MapReduce 模型的缺点包括: * 需要大量的代码处理 * 需要解决并行计算、容错、数据分布、负载均衡等复杂的问题 MapReduce 模型是一种非常有用的编程模型和算法实现,能够帮助程序员更好地处理超大数据集,并实现自动的并行化和分布式计算。































剩余19页未读,继续阅读


- 粉丝: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基于 weibo-senti-100k 数据集的情感分类实际操作
- 大数据时代-别让个人信息裸奔.docx
- 下半网络工程师下午试卷99.doc
- 微服务技术交流.ppt
- 数据库课程方案设计书--报刊订阅管理系统.doc
- HPLC法检测人参皂苷Rg1和Rb1评价血栓通注射液放置稳定性的研究.docx
- 高中生物网络化作业系统开发初探.docx
- 计算机网络安全存在的问题及对策.docx
- 红帽云计算概述-云计算.docx
- 《JavaScript程序设计》期末复习题(答案).doc
- 计算机技术与软件专业技术资格.doc
- 三层楼电梯PLC控制系统设计与调试8.doc
- 电子商务中的安全问题.doc
- Simply emotion analyse and classify using EEG data based on DEAP dataset, using python and sklearn(S
- 乡村生态振兴背景下的生态环境监管与大数据运用.docx
- 电子教案网络安全技术计本.doc


