MapReduce将复杂的、运行于大规模集群上的并行计算过程高度地抽象成两个函数:Map和Reduce。
MapReduce体系结构主要由四个部分组成,Client、JobTracker、TaskTracker以及Task。
- Client:用户编写的MapReduce程序通过Client提交到JobTracker端,用户可以通过Client提供的一些接口查看作业运行状态
- JobTracker:JobTracker负责资源监控和作业调度,如果作业失败,会将相应的任务转移到其他节点,并将这些信息通知资源调度器。
- TaskTracker:TaskTracker会周期性地通过HeatBeat将本节点上资源的使用情况和任务的运行进度汇报给TaskTracker,同时接受JobTracker发送过来的命令。TaskTracker使用slot等量划分本节点上的资源,Task只有获取solt才能运行。资源调度器的作用就是将各个TaskTracker上的空闲slot分配给Task使用。slot分为Map Slot和Reduce Solt两种。
Map函数
Reduce函数