MapReduce解读

MapReduce是处理大规模数据集的编程模型,简化了并行化和分布式计算。用户定义Map和Reduce函数,Map处理键/值对生成中间键/值对,Reduce合并相同中间键的值。Google的实现考虑了容错、网络效率和任务粒度,适用于大规模分布式系统。MapReduce成功在于易用性和广泛适用性。
摘要由CSDN通过智能技术生成

MapReduce,学习分布式系统必读的经典佳作,写在本系列的开篇。文章按该paper的思路解析Map Reduce编程模型核心思想和关注点、案例及其实现

MapReduce简介

Google搜索引擎每天处理大量的原始数据,网络爬虫、Web请求日志等,以计算各种派生数据,反向索引、Web文档的图形结构、页面数量摘要、热词集。概念上来说这类计算很简单直观,然而输入数据集通常很大,计算必须被分布在跨数百或数千台机器上进行,以便在合理的时间内完成。如何并行化计算、分发数据、处理故障,共同构成大量复杂的代码来解决这些原始简单直观的计算问题

为应对这种复杂性而设计出一个新的抽象,允许表达我们试图执行的简单运算,隐藏库中并行化、容错、数据分布和负载平衡的混乱细节。抽象的灵感来源于Lisp和其他函数式语言的map和reduce原语

Google公司于2004年发表的论文 -- MapReduce:Simplified Data Processing on Large Clusters,是一种用于处理和生成大规模数据集的编程模型及其相关实现。用户指定Map函数和Reduce函数,Map函数用于处理键/值对以生成一组中间键/值对的映射,Reduce函数合并所有被相同中间键关联的中间值。该模型可以表达许多现实世界的任务

以这种函数风格编写的程序可以自动化并行地在大规模商用机器集群上执行。运行时系统负责输入数据分区的细节,调度程序跨集群机器集执行,处理集群故障,管理机器之间的通信请求。使得没有任何并行和分布式系统经验的程序员可以很容易地利用大型分布式系统的资源

MapReduce是一个简单而强大的接口,可实现大规模自动并行化和分布式计算,并结合此接口的实现,在大规模商用PC机集群上实现程序高性能且具有高度可扩展性运行

 

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值