- 1、本文档共41页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
GFS设计动机 系统架构 GFS特点 Master容错 Chunk Server容错 小结 讨论 MapReduce操作执行流程图 操作过程 操作过程 MapReduce容错 Map: (in_key, in_value) ? {(keyj, valuej) | j = 1…k} Reduce: (key, [value1,…,valuem]) ? (key, final_value) 开发者需编写 两个主要函数 Map输入参数:in_key和in_value,它指明了Map需要处理的原始数据 Map输出结果:一组key,value对,这是经过Map操作后所产生的中间结果 Map: (in_key, in_value) ? {(keyj, valuej) | j = 1…k} Reduce: (key, [value1,…,valuem]) ? (key, final_value) 开发者需编写 两个主要函数 Reduce输入参数:(key, [value1,…,valuem]) Reduce工作:对这些对应相同key的value值进行归并处理 Reduce输出结果:(key, final_value),所有Reduce的结果并在一起就是最终结果 Map的输入参数指明了需要处理哪部分数据,以“在文本中的起始位置,需要处理的数据长度”表示,经过Map处理,形成一批中间结果“单词,出现次数”。而Reduce函数处理中间结果,将相同单词出现的次数进行累加,得到每个单词总的出现次数 怎么用MapReduce计算一个大型文本文件中各单词出现次数? 分布式数据处理MapReduce ?产生背景 ?编程模型 实现机制 案例分析 (1)输入文件分成M块,每块大概16M~64MB(可以通过参数决定),接着在集群的机器上执行分派处理程序 (2)M个Map任务和R个Reduce任务需要分派,Master选择空闲Worker来分配这些Map或Reduce任务 (3)Worker读取并处理相关输入块,Map函数产生的中间结果key,value对暂时缓冲到内存 (4)中间结果定时写到本地硬盘,分区函数将其分成R个区。中间结果在本地硬盘的位置信息将被发送回Master,然后Master负责把这些位置信息传送给Reduce Worker (5)当Master通知执行Reduce的Worker关于中间key,value对的位置时,它调用远程过程,从Map Worker的本地硬盘上读取缓冲的中间数据。当Reduce Worker读到所有的中间数据,它就使用中间key进行排序,这样可使相同key的值都在一起 (6)Reduce Worker根据每一个唯一中间key来遍历所有的排序后的中间数据,并且把key和相关的中间结果值集合传递给用户定义的Reduce函数。Reduce函数的结果写到一个最终的输出文件 (7)当所有的Map任务和Reduce任务都完成的时候,Master激活用户程序。此时MapReduce返回用户程序的调用点 Master周期性地给Worker发送ping命令,若没有应答,则认为Worker失效,终止其任务调度,把该任务调度到其他Worker上重新执行 Master会周期性地设置检查点(checkpoint),并导出Master的数据。一旦某个任务失效,系统就从最近的一个检查点恢复并重新执行 MapReduce容错 分布式数据处理MapReduce ?产生背景 ?编程模型 实现机制 案例分析 假设有一批海量的数据,每个数据都是由26个字母组成的字符串,原始的数据集合是完全无序的,怎样通过MapReduce完成排序工作,使其有序(字典序)呢? 排序通常用于衡量分布式数据处理框架的数据处理能力 对原始的数据进行分割(Split),得到N个不同的数据分块 每一个数据分块都启动一个Map进行处理。采用桶排序的方法,每个Map中按照首字母将字符串分配到26个不同的桶中 按照首字母将Map中不同桶中的字符串集合放置到相应的Reduce中进行处理。具体来说就是首字母为a的字符串全部放在Reduce1中处理,首字母为b的字符串全部放在Reduce2,以此类推 谢 谢! 《云计算(第二版)》购买网址: 当当网:/product.aspx?product_id京东商城:html * 《云计算(第二版)》购买网址: 当当网:/product.aspx?product_id京东商城:html * * * 电子工业出版社《云计算(第二版)》配套课件 解放军理工大学 刘鹏 教授
文档评论(0)