站在巨人的肩膀上才能看的更远

mapreduce编程模型:

MapReduce编程模型的原理是:利用一个输入的key/value这一键值对(pair)集合,来产生一个输出的key/value 键值对集合,在MapReduce中使用map共和reduce这两个函数来计算。

map函数接收一个输入和key/value键值对,然后产生一个中间的key/value键值对值的集合。MapReduce库把所有的具有相同中间key值的value值集合在一起,然后传递给reduce函数。

reduce函数接受一个中间的key值和一个相关的value值的集合。reduce函数合并这些value值,形成一个较小的vlaue值的集合。一般的,每次Reduce函数调用只产生0或1个输出value值。通常我们通过一个迭代器把中间value值提供给Reduce函数,这样我们就可以处理无法全部放入内存中的

大量的value值的集合。

类型(Types)

用户定义的MapReduce函数具有相关连的类型:

map (k1,v1) → list(k2,v2)
reduce (k2,list(v2)) → list(v2)

比如,输入的key和value值与输出的key和value值在类型上推导的域(domain)不同。此外,中间key和value值与输出key和value值在类型上推导的域相同。

实现(Implementation)

执行概括

通过将map调用的输入数据自动分割成M个数据片段的集合,map调用分不到多台机器上执行。输入的数据片段能够放到不同的机器上并行处理。使用分区函数将map调用产生的中间的key值分成R各不同分区,reduce函数调用也被分不到多台机器上执行。分区数量R和分区函数有用户来指定。

上图向我们展示了整个执行的过程,主要分为以下几个步骤:

  1. 用户程序首先调用MapReduce库将输入的文件分成M个数据片段,每个片段的大小一般是16MB-64MB。然后用户程序在机群中创建大量程序副本。
  2. 这些程序副本中有一个特殊的程序-master。副本中其他的程序都是worker程序,由master分配任务。由M个Map任务和R个Reduce任务将被分配,master将一个Map任务或者Reduce任务分配给一个空闲的worker
  3. 被分配了map任务的worker程序读取相关的输入数据片段,从输入的数据片段中解析出 key/value键值对,然后把这些键值对传递给用户自定义的map函数,由map函数输出中间的 key/value键值对,并缓存到内存中。
  4. 缓存中的键值对,通过分区函数分成R个区域,之后周期性的写入到本地磁盘。缓存的键值对在本地磁盘上的存储位置被回传到master,由master负责把这些存储位置存储到reduce worker。
  5. 当reduce worker 程序接收到master程序发来的数据存储位置后,使用RPC从map worker所在主机的磁盘上读取这些缓存数据。当reduce worker读取了所有的中间数据后,通过随key进行排序后是的具有相同的key值的数据聚合在一起。由于许多不同的key值映射到相同的reduce任务上,因此必须进行排序
  6. reduce worker 遍历 排序后的中间数据,对于每一个唯一的中间key值,reduce worker 程序将这个key值和他相关的中间的value值得集合传递给用户自定义的reduce哈桑农户,reduce函数的输出被追加到所属分区的输出文件。
  7. 当所有的map和reduce任务都完成后,master唤醒用户程序,在这个时候在用户程序里对mapreduce的调用才返回。

master数据结构

Master持有一些数据结构,它存储每一个map和reduce的任务状态,以及worker机器的标识。

master周期性的ping每一个worker。

技巧

  1. 分区函数
  2. 顺序保证
  3. Combiner函数
  4. 输入和输出类型
  5. 副作用
  6. 跳过损坏的记录
  7. 本地执行
  8. 状态信息
  9. 计数器

编程实现:

wait。。。。

< mapreduce >论文学习笔记相关推荐

  1. 论文学习笔记 POSEIDON: Privacy-Preserving Federated Neural Network Learning

    论文学习笔记 POSEIDON: Privacy-Preserving Federated Neural Network Learning NDSS 2021录用文章 目录 论文学习笔记 POSEID ...

  2. 动态环境下的SLAM:DynaSLAM 论文学习笔记

    动态环境下的SLAM:DynaSLAM 论文学习笔记 这篇文章 论文摘要 系统流程 相关环节的实现方法 神经网络检测图中动态物体(Mask R-CNN) Low-Cost Tracking 使用多视图 ...

  3. 识别和追踪主题层次的影响力者(来自2018 Machine Learning 论文学习笔记)

    本文作者:合肥工业大学 管理学院 钱洋 email:1563178220@qq.com . 以下内容是个人的论文阅读笔记,内容可能有不到之处,欢迎交流. 未经本人允许禁止转载. 文章目录 论文来源 论 ...

  4. 【论文学习笔记-2】高分辨率3D深度重建

    [论文学习笔记-2] 高分辨率3D深度重建 背景介绍 模型 目标 Related Works 背景介绍 应用场景广泛:桥,电缆etc 高分辨率图像的特点:像素多,potential disparity ...

  5. Dual Graph Attention Networks for Deep Latent Representation of Multifaceted Social...》论文学习笔记

    Dual Graph Attention Networks for Deep Latent Representation of Multifaceted Social Effects in Recom ...

  6. 论文学习笔记: Learning Multi-Scale Photo Exposure Correction(含pytorch代码复现)

    论文学习笔记: Learning Multi-Scale Photo Exposure Correction--含pytorch代码复现 本章工作: 论文摘要 训练数据集 网络设计原理 补充知识:拉普 ...

  7. 网规第二版:第8章 网络规划与设计论文学习笔记(含历年真题)(完结)

    第8章 网络规划与设计论文学习笔记 8.1写作范围要求 1.网络技术应用与对比分析 2.网络技术对应用系统建设的影响 3.专用网络需求分析.设计.实施和项目管理 4.下一代网络技术分析 8.2论文考试 ...

  8. 论文学习笔记 MUSE: Secure Inference Resilient to Malicious Clients

    论文学习笔记 MUSE: Secure Inference Resilient to Malicious Clients 一.背景介绍-神经网络推理 二.在半诚实模型下的模型提取攻击 2.1 模型结构 ...

  9. 论文学习笔记 SIMC: ML Inference Secure Against Malicious Clients at Semi-Honest Cost

    论文学习笔记 SIMC: ML Inference Secure Against Malicious Clients at Semi-Honest Cost 一.安全神经网络推理 二.论文主要思想 三 ...

  10. 【论文学习笔记-10】ActiveStereoNet(Google ECCV2018)主动式双目相机自监督学习立体匹配网络

    [论文学习笔记-10]ActiveStereoNet(Google ECCV2018)主动式双目相机自监督学习立体匹配网络) 自监督训练方法 Experiment ORAL 针对双目立体匹配中无监督存 ...

最新文章

  1. python csv模块心得
  2. CDOJ1324-卿学姐与公主 【线段树点更新】
  3. Qt工作笔记-在QTreeView上实现模型数据的拖拽
  4. for、while、do while 3种循环异同点
  5. SpringMVC→拦截器、SpringMVC拦截器实现、多个拦截器工作原理、拦截器使用场景、拦截器Interceptor与过滤器Filter区别
  6. PHP使用PHPExcel删除Excel单元格指定列的方法
  7. 揭秘阿里巴巴的客群画像
  8. 基于Zookeeper的分布式锁
  9. 小技巧-如何在任何一个文件夹中打开cmd
  10. HTML5期末大作业:影评网站的设计--豆瓣以及IMDb等影评网站
  11. 计算机组成与系统结构(课程设计)
  12. elementUI使用卡槽二次封装table(亲测可用)
  13. 华为交换机配置MSTP
  14. 一行神奇的javascript代码
  15. 2007 Simulation message
  16. 吹爆推易吧,格局比天大!
  17. 【uni-app】基础知识篇
  18. 资料:《新概念英语》旧版(第一册)原文及全文翻译
  19. 李弘毅机器学习笔记:回归演示
  20. 联想R720 bios版本回退

热门文章

  1. 黑白棋的设计说明(一)
  2. 文本编辑器,选什么好
  3. 520快到了,给你对象写个怦然心动吧
  4. 项目规模估计方法介绍
  5. [极致用户体验] 微信设置大字号后,iOS加载网页时闪动怎么办?
  6. 【汇正财经】股票上市交易的费用都有哪些?
  7. 语音质量评价和可懂度评价
  8. 程序员为什么不单干、接私活、自己开公司
  9. 使用Node搭建reactSSR服务端渲染架构
  10. PMP和MBA、MPA的比较