MapReduce基本概念
MapReduce其实是一个并行的计算框架,怎么理解呢?就是他会将一个任务分解成很多个任务给各个单位执行,然后将各个小任务的处理结果合并。这里的分配任务就是Map,合并结果就是Reduce,下面是基本原理图
Input split是将数据分片,然后提交到各个map tasks处理,处理的结果经过交换到对应的reduce tasks,在这里各个任务的结果将被统计处理,最后筛选出最终结果。
MapReduce运行流程
这里面的JobTracker和TaskTracker可以理解为两类不同的节点,其中JobTracker是管理节点,负责将分配Map任务和Reduce任务,Map端和Reduce端分别包含了很多个TaskTracker用于处理小任务,最终的输出结果输出到HDFS中存储
MapReduce容错机制
MapReduce提供了可靠的容错机制,防止出现一些故障,主要有以下两点:
- 重复执行:当任务出错后,首先重复执行,一般会重复四次,四次后仍出错放弃。
- 推测执行:当JobTracker检测到某个TasksTracker相比于其他TaskTracker计算慢很多以后,会找一个另外的TaskTracker来计算,谁先计算完就采用谁的结果,慢的就会被终止。