MapReduce1的工作机制中,角色主要包括客户端, Jobtracker,Tasktracker
Jobtracker主要是协调作业的运行;而Tasktracker是负责运行作业划分之后的任务。
流程图如下:
1) hdfs客户端向jobtracker请求作业,jobtracker查找作业的输出路径是否存在,如果存在,则报异常,否则,则jobtracker向客户端返回job的提交路径和jobID;
2) 客户端向共享文件系统提交job所需资源,并通知jobtracker输入数据已经放入共享文件系统,准备执行;
3) Jobtracker从共享文件系统获取job存入自己内部的任务队列,并交给作业调度器去调度(创建一个作业运行容器,封装任务和记录任务的状态和进度);
4) Jobtracker的作业调度器从共享文件系统获取数据的输入分片,创建任务运行列表;
5) Tasktracker和jobtracker根据心跳保持通信,周期性的向jobtracker报告自己的状态,当tasktracker准备好运行任务时, jobtracker根据相应的调度算法获取一个task分配给Tasktracker;
6) Tasktracker从共享文件系统获取任务相关的资料,并使jar文件本地化,同时创建响应的文件夹和一个taskrunner运行任务;
7) Taskrunner启动一个新的jvm,并在jvm运行任务。
进度与状态的更新:有一个独立的线程向tasktracker报告当前任务状态。同时Tasktracker每隔5s向Jobtracker通过心跳发送状态。JobTracker将这些更新合并,发送给客户端。
MR1.0的工作流程
最新推荐文章于 2023-03-14 20:27:09 发布