MapReduce基本概念和工作流程

MapReduce基本概念

MapReduce其实是一个并行的计算框架,怎么理解呢?就是他会将一个任务分解成很多个任务给各个单位执行,然后将各个小任务的处理结果合并。这里的分配任务就是Map,合并结果就是Reduce,下面是基本原理图

Input split是将数据分片,然后提交到各个map tasks处理,处理的结果经过交换到对应的reduce tasks,在这里各个任务的结果将被统计处理,最后筛选出最终结果。

MapReduce运行流程

这里面的JobTracker和TaskTracker可以理解为两类不同的节点,其中JobTracker是管理节点,负责将分配Map任务和Reduce任务,Map端和Reduce端分别包含了很多个TaskTracker用于处理小任务,最终的输出结果输出到HDFS中存储

MapReduce容错机制

MapReduce提供了可靠的容错机制,防止出现一些故障,主要有以下两点:

  1. 重复执行:当任务出错后,首先重复执行,一般会重复四次,四次后仍出错放弃。
  2. 推测执行:当JobTracker检测到某个TasksTracker相比于其他TaskTracker计算慢很多以后,会找一个另外的TaskTracker来计算,谁先计算完就采用谁的结果,慢的就会被终止。

本文标题:MapReduce基本概念和工作流程

文章作者:Cello

发布时间:2018年10月31日 - 17:10

最后更新:2018年10月31日 - 18:10

原始链接:https://littlexy.git.io/2018/10/31/MapReduce基本概念和工作流程/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

坚持原创技术分享,您的支持将鼓励我继续创作!