论文总结mapreduce
Posted wlm-198
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了论文总结mapreduce相关的知识,希望对你有一定的参考价值。
目录
MapReduce
1、MapReduce
1、介绍
2、编程模型
3、实现
4、容错机制
5、技巧
6、思考
MapReduce
本文只对论文中对分布式设计的相关算法做总结交流
1、介绍
- MapReduce是谷歌工程师提出的一个编程模型,用于处理、产生大数据集的相关实现。MapReduce在计算上实现是基于计算机集群,这篇论文就是在描述在集群进行计算时资源管理、分配的方法。
2、编程模型
MapReduce是如何使用的?
map(String key,String value):
//key:文档的名字
//value:文档的内容
for each word w in value:
EmitIntermediate(w,"1");
reduce(String key,Iterator values):
//key:一个词
//values:一个计数列表
int result=0;
for each v in values:
result+=ParseInt(v);
Emit(AsString(resut));
- map:产生数据(输入),reduce:整合数据(输出)。
- 通过上面的函数,可以发现map、reduce在获取数据后,再通过一个调用某个接口来进一步实现计算,那么通过下面的介绍,我们来了解集群是如何实现对大规模数据计算。
3、实现
- 概述
从上图,可看出userprogram在接到计算任务后,会创建子进程分别与master、worker建立连接,此时关于计算的相关细节,userprogram不再参与,控制权将移交给master。其中worker在集群中承担具体计算任务,master负责计算任务及资源的调度。 - 实现
首先MapReduce会将计算任务划分成M份,并将划分后的数据传输给其他不同的机器上,同时将输出划分成R份,同样由不同的机器进行维护,计算结束后R份的结果会统一输出到user上- a. MapReduce将输入数据划分成M份后,将其拷贝到集群中的其他机器上
- b. 整个集群中,master会接收一份数据副本,剩余的机器在获得数据后,接受master统一调度,分别承担M任务和R任务。
- c. master会指派部分机器承担M任务----worker。woeker负责对本机收到的数据片段进行计算,并将结果放在内存的缓冲区中。
- d. 缓存中的结果会周期性的写入本地磁盘中,其中接收数据的本地磁盘位置会返回给master,master会将这些存有结果数据的磁盘地址转发给R。
- e. R在收到位置后,通过远程调用方法读取结果数据。在读取过程中,R会对结果数据进行一次整理。
- f. 整理结果后,R将唯一性(确定)数据存放在一个临时文件中,整个计算结束后,得到的所有数据输出到用户文件。
- g. 计算结束,master会唤醒用户程序,用户调用输出文件获得最后结果。
4、容错机制
worker故障
worker在一段时里未向master发送消息后,master认为该机失效,将该机上的计算任务分配给其他worker,R也不再在该机上进行数据读取。master会将故障woker设置为初始态,待一切正常,故障worker重新进入调度
master故障
master故障发生,时间则回滚到上一次时间节点,并让另一个master进程执行,并根据需要判断是否需要重新执行计算操作。
备份任务
针对在计算任务结束前,计算的进度可能会因为某一个机器的性能低下拖慢整个计算,那么在计算结束前,master会启动一个备用任务,备用人物同时执行最后这部分数据,原来或者备用的任务完成,整个计算则标记结束。
5、技巧
/待续/
6、思考
/待续/
以上是关于论文总结mapreduce的主要内容,如果未能解决你的问题,请参考以下文章