欢迎来到天天文库
浏览记录
ID:52198363
大小:53.50 KB
页数:2页
时间:2020-03-24
《MapReduce 编程模型简介.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、MapReduce编程模型简介随着信息化的进一步加深,在各个领域,如电信、交通、金融、零售、航天、医药等,数据量级都呈现快速增长趋势。如何高效并且无误地存储、分析、理解以及利用这些大规模数据,成为一个关键性问题。为了应对大规模数据处理的难题,MapReduce编程模型应运而生。Google提出的这一模型,由于良好的易用性和可扩展性,得到了工业界和学术界的广泛支持。Hadoop,MapReduce的开源实现,已经在Yahoo!,Facebook,IBM,百度,中国移动等多家单位中使用。MapReduce编程模型MapReduce以函
2、数方式提供了Map和Reduce来进行分布式计算。Map相对独立且并行运行,对存储系统中的文件按行处理,并产生键值(key/value)对。Reduce以Map的输出作为输入,相同key的记录汇聚到同一reduce,reduce对这组记录进行操作,并产生新的数据集。所有Reduce任务的输出组成最终结果。形式化描述如下:Map:(k1,v1)->list(k2,v2)Reduce:(k2,list(v2))->list(v3)MapReduce对任务的处理流程如图1所示。主要分为几步:1.用户提交MapReduce程序至主控节点,
3、主控节点将输入文件划分成若干分片(split)。主控节点Master和工作节点worker启动相应进程;2.主控节点根据工作节点实际情况,进行map任务的分配;3.被分配到map任务的节点读取文件的一个分片,按行进行map处理,将结果存在本地。结果分成R个分片进行存储,R对应的是Reduce数目;4.Map节点将存储文件的信息传递给Master主控节点,Master指定Reduce任务运行节点,并告知数据获取节点信息;5.Reduce节点根据Master传递的信息去map节点远程读取数据。因为reduce函数按分组进行处理,key
4、相同的记录被一同处理,在reduce节点正式处理前,对所有的记录按照key排序;6.Reduce将处理结果写入到分布式文件系统中。图1.MapReduce处理流程图MapReduce适用情况由于MapReduce编程模型是对输入按行顺次处理,它更适用于对批量数据进行处理。由于良好的可扩展性,MapReduce尤其适用于对大规模数据的处理。但是,对搜索等只是需要从大量数据中选取某几条特别的操作,MapReduce相对于具有完善索引的系统而言,不再具有优势。因为它需要对每条数据进行匹配,并与搜索条件相匹配的数据提取出来。而如果采用索引
5、系统,并不需要遍历所有的数据。另外,由于每次操作需要遍历所有数据,MapReduce并不适用于需要实时响应的系统。相反地,对于搜索引擎的预处理工作比如网页爬虫、数据清洗,以及日志分析等实时性要求不高的后台处理工作,MapReduce编程模型是足以胜任的。
此文档下载收益归作者所有