Hadoop MapReduce作业的生命周期


 

首先,我们来看如下的一张图:


作业的整个运行过程分为5个步骤:

1、作业的提交和初始化。

用户提交作业后,由JobClient实例将作业相关信息(jar包、配置文件xml、分片元信息等)上传到HDFS。

然后,JobClient通过RPC通知JobTracker。JobTracker接收到新作业请求后,由作业调度模块对作业进行初始化,

为作业创建一个JobInProgress对象以跟踪作业的运行状况,而JobInProgress则会为每个Task创建一个

TaskInProgress对象以跟踪每个任务的运行状态,而TaskInProgress可能需要管理多个Task运行尝试(Task Attempt)。


2、任务调度和监控。

通过MapReduce的架构简介,我们知道,任务的调度和监控由JobTracker完成。TaskTracker通过Heartbeat周期性

地向JobTracker汇报本节点的资源使用情况,一旦出现空闲资源,任务调度器按照一定的策略选择合适的任务使用该空闲

资源。另外,JobTracker还跟踪整个作业的运行过程,保证作业最终顺利完成。


3、任务运行环境的准备。

运行环境包括JVM启动和资源隔离,这些都由TaskTracker实现。


4、任务的执行。

启动Task后,每个Task的最新进度先由Task通过RPC汇报给TaskTracker,再由TaskTracker汇报给JobTracker。


5、作业运行完成。

直到所有Task执行完毕后,整个作业才算执行成功。

相关内容