一、结构概览
MapReduce主要由四部分组成:Client、JobTracker、TaskScheduler和TaskTracker

二、客户端Client
作用:
(1) 用户编写的应用程序要通过Client来提交给JobTracker。
(2) 用户可以通过Client提供的接口查看所提交作业的运行状况。
三、作业跟踪器JobTracker
作用:
(1) 负责资源监控和作业调度
(2) 监控底层TaskTracker和当前运行Job的健康状况
(3) 在节点失效时,转移Job到其他以节点继续运行
(4) 跟踪任务执行进度和资源使用量,并把信息发送给TaskScheduler
四、任务调度器TaskScheduler
作用是根据JobTracker发送的任务进度和资源使用信息,决定把哪个任务分发给哪个节点的TaskTracker执行。
TaskScheduler是一个可插拔模块,即允许用户自己编写任务调度策略。
五、任务跟踪器TaskTracker
1. 作用
(1) 分布在各个机器(节点)上,接收JobTracker发来的命令,具体都执行各种任务
(2) 把资源使用情况和任务运行进度以heartbeat的方式发送给JobTraker以供其监控
2. 任务Task
分为Map Task和Reduce Task。一台机器可以同时运行Map Task和Reduce Task。
3. 槽Slot
每个TaskTracker都会把计算资源(CPU、内存等)打包,然后等分成很多份,以Slot作为当量。
Slot分为Map类型和Reduce类型两种,分别执行Map Task和Reduce Task。只有空闲的Slot才会被TaskScheduler分配新的任务。
Reference:
https://www.icourse163.org/learn/XMU-1002335004#/learn/content?type=detail&id=1214310150&sm=1