< mapreduce >论文学习笔记
站在巨人的肩膀上才能看的更远
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)
用户定义的Map
和Reduce
函数具有相关连的类型:
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和分区函数有用户来指定。
上图向我们展示了整个执行的过程,主要分为以下几个步骤:
- 用户程序首先调用MapReduce库将输入的文件分成M个数据片段,每个片段的大小一般是16MB-64MB。然后用户程序在机群中创建大量程序副本。
- 这些程序副本中有一个特殊的程序-
master
。副本中其他的程序都是worker
程序,由master
分配任务。由M个Map任务和R个Reduce任务将被分配,master
将一个Map任务或者Reduce任务分配给一个空闲的worker
。 - 被分配了map任务的worker程序读取相关的输入数据片段,从输入的数据片段中解析出
key/value
键值对,然后把这些键值对传递给用户自定义的map函数,由map函数输出中间的key/value
键值对,并缓存到内存中。 - 缓存中的键值对,通过分区函数分成R个区域,之后周期性的写入到本地磁盘。缓存的键值对在本地磁盘上的存储位置被回传到master,由master负责把这些存储位置存储到reduce worker。
- 当reduce worker 程序接收到master程序发来的数据存储位置后,使用RPC从map worker所在主机的磁盘上读取这些缓存数据。当reduce worker读取了所有的中间数据后,通过随key进行排序后是的具有相同的key值的数据聚合在一起。由于许多不同的key值映射到相同的reduce任务上,因此必须进行排序
- reduce worker 遍历 排序后的中间数据,对于每一个唯一的中间key值,reduce worker 程序将这个key值和他相关的中间的value值得集合传递给用户自定义的reduce哈桑农户,reduce函数的输出被追加到所属分区的输出文件。
- 当所有的map和reduce任务都完成后,master唤醒用户程序,在这个时候在用户程序里对mapreduce的调用才返回。
master数据结构
Master持有一些数据结构,它存储每一个map和reduce的任务状态,以及worker机器的标识。
master周期性的ping每一个worker。
技巧
- 分区函数
- 顺序保证
- Combiner函数
- 输入和输出类型
- 副作用
- 跳过损坏的记录
- 本地执行
- 状态信息
- 计数器
编程实现:
wait。。。。
< mapreduce >论文学习笔记相关推荐
- 论文学习笔记 POSEIDON: Privacy-Preserving Federated Neural Network Learning
论文学习笔记 POSEIDON: Privacy-Preserving Federated Neural Network Learning NDSS 2021录用文章 目录 论文学习笔记 POSEID ...
- 动态环境下的SLAM:DynaSLAM 论文学习笔记
动态环境下的SLAM:DynaSLAM 论文学习笔记 这篇文章 论文摘要 系统流程 相关环节的实现方法 神经网络检测图中动态物体(Mask R-CNN) Low-Cost Tracking 使用多视图 ...
- 识别和追踪主题层次的影响力者(来自2018 Machine Learning 论文学习笔记)
本文作者:合肥工业大学 管理学院 钱洋 email:1563178220@qq.com . 以下内容是个人的论文阅读笔记,内容可能有不到之处,欢迎交流. 未经本人允许禁止转载. 文章目录 论文来源 论 ...
- 【论文学习笔记-2】高分辨率3D深度重建
[论文学习笔记-2] 高分辨率3D深度重建 背景介绍 模型 目标 Related Works 背景介绍 应用场景广泛:桥,电缆etc 高分辨率图像的特点:像素多,potential disparity ...
- 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 ...
- 论文学习笔记: Learning Multi-Scale Photo Exposure Correction(含pytorch代码复现)
论文学习笔记: Learning Multi-Scale Photo Exposure Correction--含pytorch代码复现 本章工作: 论文摘要 训练数据集 网络设计原理 补充知识:拉普 ...
- 网规第二版:第8章 网络规划与设计论文学习笔记(含历年真题)(完结)
第8章 网络规划与设计论文学习笔记 8.1写作范围要求 1.网络技术应用与对比分析 2.网络技术对应用系统建设的影响 3.专用网络需求分析.设计.实施和项目管理 4.下一代网络技术分析 8.2论文考试 ...
- 论文学习笔记 MUSE: Secure Inference Resilient to Malicious Clients
论文学习笔记 MUSE: Secure Inference Resilient to Malicious Clients 一.背景介绍-神经网络推理 二.在半诚实模型下的模型提取攻击 2.1 模型结构 ...
- 论文学习笔记 SIMC: ML Inference Secure Against Malicious Clients at Semi-Honest Cost
论文学习笔记 SIMC: ML Inference Secure Against Malicious Clients at Semi-Honest Cost 一.安全神经网络推理 二.论文主要思想 三 ...
- 【论文学习笔记-10】ActiveStereoNet(Google ECCV2018)主动式双目相机自监督学习立体匹配网络
[论文学习笔记-10]ActiveStereoNet(Google ECCV2018)主动式双目相机自监督学习立体匹配网络) 自监督训练方法 Experiment ORAL 针对双目立体匹配中无监督存 ...
最新文章
- python csv模块心得
- CDOJ1324-卿学姐与公主 【线段树点更新】
- Qt工作笔记-在QTreeView上实现模型数据的拖拽
- for、while、do while 3种循环异同点
- SpringMVC→拦截器、SpringMVC拦截器实现、多个拦截器工作原理、拦截器使用场景、拦截器Interceptor与过滤器Filter区别
- PHP使用PHPExcel删除Excel单元格指定列的方法
- 揭秘阿里巴巴的客群画像
- 基于Zookeeper的分布式锁
- 小技巧-如何在任何一个文件夹中打开cmd
- HTML5期末大作业:影评网站的设计--豆瓣以及IMDb等影评网站
- 计算机组成与系统结构(课程设计)
- elementUI使用卡槽二次封装table(亲测可用)
- 华为交换机配置MSTP
- 一行神奇的javascript代码
- 2007 Simulation message
- 吹爆推易吧,格局比天大!
- 【uni-app】基础知识篇
- 资料:《新概念英语》旧版(第一册)原文及全文翻译
- 李弘毅机器学习笔记:回归演示
- 联想R720 bios版本回退