1、Google云计算的强大处理能力目录目录 1.为何云计算有强大的处理能力 2.云计算的构成要素 3.MapReduce分布式编程模型的结构 4.MapReduce对数据处理的流程 5.容错机制强大的分布式处理能力强大的分布式处理能力 云计算:其概念是由Google提出的,这是一个美丽的网络应用模式。 主要目的:它旨在通过网络把多个成本相对较低的计算实体整合成一个具有强大计算能力的完美系统。强大的分布式处理能力强大的分布式处理能力 由几十万甚至大约100万台廉价的服务器所组成的网络。这些机器单个而论的话,其性能并不比家用台式机强大多少。但是这个网络存储的数据量惊人,能容纳不计其数的网络数据拷贝,
2、因此搜索速度能够更快,在眨眼之间便能为数十亿的搜索提交答案。向云规模的数据处理迈进标志着我们在信息处理方面发生了翻天覆地的转变。从最基本的层面讲,云的发展就如同100年前人类用电的进程演变,当时的农场和公司逐渐关闭了自己的发电机,转而从高效的发电厂购买电力。Google的高管们很早前就开始展望这一转变并为之进行筹划准备。googlegoogle云计算的构成要素云计算的构成要素 谷歌文件系统GFS(海量的数据访问存储) Chubby分布式锁服务(分布式环境下并发操作的同步) MapReduce分布式编程模型的结构(并行数据处理) BigTable结构化数据存储系统(管理组织海量的数据)googl
3、egoogle云计算的构成要素云计算的构成要素Map函数(映射)和Reduce函数(化简)Map操作是可以高度并行的,这对高性能要求的应用以及并行计算领域的需求非常有用。统计词频的MapReduce函数的核心代码非常简短,主要就是实现这两个函数。map(String key, String value):/ key: 文件名/ value: 文件内容for each word w in value:EmitIntermediate(w, 1);reduce(String key, Iterator values):/ key: a word/ values: a list of countsi
4、nt result = 0;for each v in values:result += ParseInt(v);Emit(AsString(result);3.MapReduce3.MapReduce分布式编程模型的结构分布式编程模型的结构过程过程1.MapReduce库先把user program的输入文件划分为M份2.user program的副本中有一个称为master,其余称为worker,master是负责调度的,为空闲worker分配作业3.被分配了Map作业的worker,开始读取对应分片的输入数据,Map作业数量是由M决定的,map函数产生的中间键值对被缓存在内存中。4.缓存
5、的中间键值对会被定期写入本地磁盘,而且被分为R个区,R的大小是由用户定义的,将来每个区会对应一个Reduce作业;这些中间键值对的位置会被通报给master,master负责将信息转发给Reduce worker。过程过程5.master通知分配了Reduce作业的worker它负责的分区在什么位置,当Reduce worker把所有它负责的中间键值对都读过来后,先对它们进行排序,使得相同键的键值对聚集在一起。6.reduce worker遍历排序后的中间键值对,对于每个唯一的键,都将键与关联的值传递给reduce函数,reduce函数产生的输出会添加到这个分区的输出文件。7.当所有的Map和
6、Reduce作业都完成了,master唤醒正版的user program,MapReduce函数调用返回user program的代码。容错机制容错机制由于MapReduce函数库是设计用于在成百上千台机器上处理海量数据的,所以这个函数库必须考虑到机器故障的容错处理。master会定期发送命令轮询每一台worker机器。如果在一定时间内有一台worker机器一直没有响应,master就认为这个worker失效了。所有这个worker机器上正在处理的map 任务或者reduce任务都被设置成为空闲状态,被其他worker重新执行。解决方法:在master中,定期会设定检查点(checkpoint)。如果master任务失效了,可以从上次最后一个检查点开始启动另一个master进程。 谢谢!谢谢!