JobConrol实现原理


JobControl : 在实际场景中,作业可能比较复杂,相互之间存在依赖关系,这些作业构成有向图(DAG),jobControl可以实现作业间的调度关系。

主要通过addDepending()方法来设置作业间的依赖关系。

设计原理:

JobControl由两个类组成:Job 和 Jobcontrol 。

Job类  :封装了一个MR作业及其对应的依赖关系,主要负责监控各个依赖作业的运行状态以改变自己的状态。

 状态: waiting  , ready  , running ,sucess or failed

Jobcontrol类 : 封装了一系列MR作业及其对应的依赖关系。将处于不同状态的作业放入不同的哈希表中,并按照上面的状态转移作业。在实现时,有一个线程周期行的监控和更新状态。


相关内容