首页 > 其他分享 >MapReduce论文总结

MapReduce论文总结

时间:2023-01-03 16:56:22浏览次数:53  
标签:总结 论文 worker MapReduce 任务 master 执行 节点

解决了什么问题

MapReduce是隐藏了分布式环境下的代码复杂性,抽象出map和reduce两个阶段,分布式计算解决框架

如何实现


由MapReduce运行流程图可知,程序分为1个master节点和多个worker节点。worker节点负责实际计算,而master节点协调worker节点的任务分配。程序执行过程分为Map和Reduce两个阶段,Map阶段接收一组输入(例如多个文本文件),执行用户自定义的map函数,输出中间key/value对(例如单词出现次数1);Reduce阶段则是执行用户自定义的reduce函数,整合中间值(例如单词词频累加),输出结果

可能会有什么问题

master节点宕机如何解决

master周期性的将自身数据写入磁盘,即checkpoint。如果这个master挂掉了,那么就可以从最新的checkpoint创建出一个新的备份,重新运行MapReduce程序

worker节点超时/宕机如何解决

master会周期性ping下每个worker。如果在一定时间内无法收到来自某个worker的响应,那么master就会将该worker标记为failed。正在由该worker进行的任务需要安排给其他的worker去完成

如何保证多个worker执行同一任务时的幂等性

由于可能存在worker节点超时,由原本本该他完成的任务,交给了别的worker。这样,这一个任务就会生成多个对应的输出,worker执行时生成系统临时文件,确定某一worker完成时,再由master重命名这些文件

优化

尽可能节省网络带宽

  1. worker机器执行MapReduce操作时,输入数据尽可能在本地进行读取

提升执行速度

  1. 合理的任务粒度,包括map任务拆分为M个子任务,reduce任务拆分为R个子任务,worker机器数量
  2. 当MapReduce计算接近完成时,master会调度一个备用任务来执行剩下的处于正在执行中的任务

策略优化

  1. 合理的分区函数,哈希取模、前缀匹配等
  2. 有序的输出文件
  3. map执行完成之后,执行Combiner函数,整合重复数据
  4. 跳过损坏的记录

MapReduce论文

标签:总结,论文,worker,MapReduce,任务,master,执行,节点
From: https://www.cnblogs.com/snowsteps/p/17022725.html

相关文章

  • 19个成就大事件,一个鹅厂自媒体人迟到的年终总结
    元旦玩手机玩到了三点半,从10月份开始搞社群以来都没有这么疯狂过了,大家元旦过的开心吗?其实这个公众号我三年前就开了,一直没有更新,错过了公众号的风口,错过了短视频,后悔的要死......
  • 总结HashSet和TreeSet的去重
    HashSet的去重添加的对象需要重写hashCode()和equals()方法,其中hashCode()方法,应该是根据自定义类对象的成员属性值计算得来,equals()方法,应该是比较自定义类对象的成员属......
  • vue 面试问题总结
    vue-cli工程常用的npm命令有哪些?全局安装vue-clinpminstall--globalvue-cli创建一个基于webpack模板的新项目vueinitwebpackmy-project进入项目目录,运行cd......
  • 小程序开发总结三 弹窗 动态class 发送请求 设置本地储存过期时间
    弹窗<buttonclass="get_codebindtap="get_login">{{get_code}}</button>get_login(e){wx.showToast({title:'请输入手机号码',icon:'none',......
  • JVM面试大总结
    一、汇总JVM是运行在操作系统之上的,它与硬件没有直接的交互。先说一下JVM的内存区域,当函数开始运行时,JVM拿到自己的内存将自己的内存区域进行了分割,分为五块区域:线程共享的......
  • 论文-TCN
    AnEmpiricalEvaluationofGenericConvolutionalandRecurrentNetworksforSequenceModeling图1图2图3图4图5表1......
  • 编程三分钟5月技术总结
    点击上方“编程三分钟”,马上关注,每天早上8:50准时推送。从4月27号开始,到现在我更新了30篇文章,涵盖开发技能、Linux、网络等各个方面,其中还包括了一个Git......
  • JVM面试大总结
    一、汇总JVM是运行在操作系统之上的,它与硬件没有直接的交互。先说一下JVM的内存区域,当函数开始运行时,JVM拿到自己的内存将自己的内存区域进行了分割,分为五块区域:线程共享......
  • 2022 年终总结|技术飞速成长,生活颠沛流离
    2022年快过去了,是时候回顾一下了。去年年末的时候,我从北京去了上海,去了一家外企。最开始的几个月是在上海这边的team,平时的工作都是和国内的同事沟通,但后来组织结构调整,我......
  • Java面试问答总结
    问:什么是并发和并行?答:并发是在单核操作系统中,CPU通过切分时间片交替执行不同的线程;并行是在多核操作系统中,多个CPU同时执行不同的线程。并发和并行的目的都是为了最大化的......