MapReduce(分布式技术框架)

MapReduce组件组成

Client,JobTracker,TaskTracker和Task

MapReduce架构图

图片截取来源:Hadoop技术内幕:深入解析MapReduce架构设计与实现原理

MapReduce(分布式技术框架)

 

Client:用户编写的MapReduce程序通过Client提交到JobTracker端;一个MapReduce程序可对应若干个作业,每个作业会被分解成若干个Map/Reduce任务(Task)。

JobTracker:主要负责资源监控和作业调度。JobTracker监控所有TaskTracker与作业的健康状况,一旦发现失败情况后,其会将相应的任务转移到其他节点;同时,JobTracker会跟踪任务的执行进度,资源使用量等信息,并将这些信息告诉任务调度器,而调度器会在资源出现空闲时,选择合适的任务使用这些资源。

TaskTracker:会周期性的通过Heartbeat将本节点上资源的使用情况和任务的运行进度汇报给JobTracker,同时接收JobTracker发送过来的命令并执行相应的操作(如启动新任务,杀死任务等)。TaskTracker使用“slot”等量划分本节点上的资源量。“slot”代表计算资源(CPU,内存等)。一个Task获取到一个slot后才有机会运行,而Hadoop调度器的作用就是将各个TaskTracker上的空闲的slot分配给Task使用。slot分为Map slot和Reduce slot两种,分别供Map Task 和Reduce Task使用。

Task:分为Map Task和Reduce Task两种。